Oii Ricardo, tudo bem por aí?
Uma forma de fazer isso é criando uma função para receber o parâmetro no filtro da view.
Crie uma função que recebe o parâmetro e retorna a subquery com o WHERE desejado. Por exemplo:
CREATE OR REPLACE FUNCTION minha_funcao(p_sn_ativo IN VARCHAR2)
RETURN VARCHAR2
IS
v_subquery VARCHAR2(1000);
BEGIN
v_subquery := 'SELECT CD_TURMA CODIGO, DS_TURMA TURMA, SN_ATIVO ATIVO
FROM TURMA
WHERE sn_ativo = ' || p_sn_ativo;
RETURN v_subquery;
END;
Em seguida, crie a VIEW utilizando a função criada anteriormente. Por exemplo:
CREATE OR REPLACE VIEW minha_view
AS
SELECT
CD_TURMA CODIGO,
DS_TURMA TURMA,
SN_ATIVO ATIVO
FROM TURMA
WHERE sn_ativo = (SELECT minha_funcao('parametro') FROM DUAL);
Espero que esse seja um bom ponto de partida! Como é um caso com algumas particularidades, é necessário que você faça seus testes e adeque o código da forma que melhor funcione para seu objetivo.
Abraços.