Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal...
Não estou conseguindo criar uma tabela por uma das colunas ter o tipo de dado " Long "
E meu superior precisa deste campo..
alguém poderia me ajudar?
CREATE TABLE CGMP1A3_0328_ALLCONSTRAINTS AS
SELECT * ( o campo em questão do tipo " long " é SEARCH_CONDITION
FROM ALL_CONSTRAINTS@DBLCGMP1A3
WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'BEABAM_ORABAM', 'OUTLN', 'WMSYS', 'EXFSYS');
alguém pode me ajudar?
Obrigado.
att.
Qual erro que dá ?
ORA-00997: uso inválido do tipo de dados LONG
ESTE ERRO motta.
Parece que colunas long não podem ser manipuladas em CREATE AS SELECT.
Veja se o AskTom te ajuda.
Tente ao menos criar a tabela assim :
CREATE TABLE CGMP1A3_0328_ALLCONSTRAINTS AS
SELECT * ( o campo em questão do tipo " long " é SEARCH_CONDITION
FROM ALL_CONSTRAINTS@DBLCGMP1A3
WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'BEABAM_ORABAM', 'OUTLN', 'WMSYS', 'EXFSYS')
and 1=2 --Obs : Não testei, não sei se funciona.
ou pegue a descrição da tabela e use para criar a cópia.
Depois seria só trabalhar o insert, talvez via bloco advpl
>
Parece que colunas long não podem ser manipuladas em CREATE AS SELECT.
Veja se o AskTom te ajuda.
Tente ao menos criar a tabela assim :
CREATE TABLE CGMP1A3_0328_ALLCONSTRAINTS AS
SELECT * ( o campo em questão do tipo " long " é SEARCH_CONDITION
FROM ALL_CONSTRAINTS@DBLCGMP1A3
WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'BEABAM_ORABAM', 'OUTLN', 'WMSYS', 'EXFSYS')
and 1=2 --Obs : Não testei, não sei se funciona.
ou pegue a descrição da tabela e use para criar a cópia.
Depois seria só trabalhar o insert, talvez via bloco advpl
ENTÃO Não funciona mota.. da o erro que mostrei...
O que eu fiz.. inseri todos os dados menos a coluna " SEARCH_CONDITION "
Para colocar ela agora.. tenho que fazer UPDATE.. pode ser desta forma motta?
segue oq fiz até agora..
DECLARE
--VLONG LONG := '43702198RYIWQEYR2Q93741234H12IU34Y1O2IU34Y128734123IU421HIU3';
VVAR VARCHAR2(32767);SELECT SEARCH_CONDITION
INTO VVAR
FROM ALL_CONSTRAINTS@DBLCGMP1A3
WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'BEABAM_ORABAM', 'OUTLN', 'WMSYS', 'EXFSYS');
BEGIN
FOR I IN RED LOOP
-- VVAR := VLONG;
UPDATE CGMP1A3_0401_ALLCONSTRAINTS
SET SEARCH_CONDITION = I.SEARCH_CONDITION;
END LOOP;
END;Creio que funciona sim ...
Trabalheira hein...
Não sabia esta da LONG no insert.
>
Creio que funciona sim ...
Trabalheira hein...
Não sabia esta da LONG no insert.
Primeira vez que me deparo com isso também... mas a Lider técnica quer isso neh.. então OK rs..
vlw ai motta \õ
Não faz muito sentido pois já tem VIEW , se é para manter historico ou algo assim melhor exportar num formato de script exemplos aos montes ...
Motta segue abaixo o que fiz para dar jeito na coluna " long "
DECLARE
--VLONG LONG := '43702198RYIWQEYR2Q93741234H12IU34Y1O2IU34Y128734123IU421HIU3';
--VVAR VARCHAR2(32767);
CURSOR RED IS
SELECT SEARCH_CONDITION, CONSTRAINT_NAME
FROM ALL_CONSTRAINTS@DBLCGMP1A3
WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'BEABAM_ORABAM', 'OUTLN', 'WMSYS', 'EXFSYS');
BEGIN
FOR I IN RED LOOP
UPDATE CGMP1A3_0401_ALLCONSTRAINTS
SET SEARCH_CONDITION = I.SEARCH_CONDITION
WHERE CONSTRAINT_NAME = I.CONSTRAINT_NAME;
END LOOP;
COMMIT;
END;
Obrigado.
att.
Qual erro que dá ?