Walquencir, Tenta ai:
CREATE OR REPLACE FORCE VIEW "SAC"."CLIENTE" ("CNPJ", "NOME", "ENDERECO") AS SELECT to_number(replace(translate(L_CLI.CGC,'/-.',' '),' ','')) cnpj , L_CLI.NOME NOME , L_CLI.END ENDERECO, FROM L.CLIENTE L_CLI , L.REPRESENTANTE L_REP , L.SUPERVISOR L_SUP WHERE L_CLI.CODREP = L_REP.CODIGO AND L_REP.SUPERVISOR = L_SUP.CODIGO / 2008/7/14 Walquencir Pedroti <[EMAIL PROTECTED]>: > Boa tarde a todos. > > Minha tabela o campo CNPJ é VARCHAR2. > Quando monto minha view da forma abaixo. E a tabela view não reconhece como > Number o campo CNPJ, > e portanto toda a consulta feita neste campo retorna como null, já um > select all retorna o CNPJ. > > CREATE OR REPLACE FORCE VIEW "SAC"."CLIENTE" ("CNPJ", "NOME", "ENDERECO") > AS > SELECT TO_NUMBER(CNPJ), NOME, ENDERECO FROM ( > SELECT * FROM ( > SELECT > CONCAT ('1',L_CLI.CGC) CHAVE, > REPLACE(REPLACE(REPLACE(L_CLI.CGC,'.',null),'/',null),'-',null) CNPJ, > L_CLI.NOME NOME, > L_CLI.END ENDERECO, > FROM > L.CLIENTE L_CLI, > L.REPRESENTANTE L_REP, > L.SUPERVISOR L_SUP > WHERE > L_CLI.CODREP = L_REP.CODIGO > AND > L_REP.SUPERVISOR = L_SUP.CODIGO > ) > ); > > Criei outra VIEW com declare > set serverout on; > DECLARE > var_CNPJ number ; > BEGIN > SELECT CNPJ INTO var_CNPJ FROM ( > SELECT > REPLACE(REPLACE(REPLACE(L_CLI0A0.CGC,'.',null),'/',null),'-',null) cnpj, > L_CLI.NOME NOME, > L_CLI.END ENDERECO, > FROM > L.CLIENTE L_CLI, > L.REPRESENTANTE L_REP, > L.SUPERVISOR L_SUP > WHERE > L_CLI.CODREP = L_REP.CODIGO > AND > L_REP.SUPERVISOR = L_SUP.CODIGO > and rownum < 6 > ); > END; > / > Mas esta aparece a mensagem ORA-01422: exact fetch returns more than > requested number of rows. > Verificando a mensagem no metalink, existe um bug para minha versão que é > 10.1.0.2.0. > E lá existe uma outra forma de fazer que é: > DECLARE > TYPE NumList IS TABLE OF NUMBER; > TYPE NameList IS TABLE OF VARCHAR2(15); > empnos NumList; > enames NameList; > sals NumList; > BEGIN > EXECUTE IMMEDIATE 'SELECT empno, ename FROM emp' > BULK COLLECT INTO empnos, enames; > DBMS_OUTPUT.PUT_LINE('Empployess collected = '||empnos.count); > END; > / > > ============ > Alguém consegue VER uma solução para a criação de uma VIEW????? > Obrigado a todos > W.Pedroti > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcio Portes http://mportes.blogspot.com [As partes desta mensagem que não continham texto foram removidas]