Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
bart_wagner
Rank: Programador Júnior
Mensagens: 18 Registrado em: Sáb, 09 Jun 2007 7:41 am
Localização: Peruibe - SP
Qui, 23 Out 2008 12:11 pm
olá pessoa, alguém poderia me ajudar a sabe que tipo de erro é esse
Selecionar tudo
ORA-06550: línea 53, columna 55:
PL/SQL: ORA-00904: "S_INV"."TXT_FISCAL_DOCUMENT_NUMBER": identificador no válido
ORA-06550: línea 51, columna 16:
PL/SQL: SQL Statement ignored
declare
CURSOR C_CASH_INVOICES IS
select
btbr.txt_fiscal_DOCUMENT_NUMBER,
btbr.txt_fed_gov_tax_number,
apin.vendor_id,
pove.GLOBAL_ATTRIBUTE10,
pove.GLOBAL_ATTRIBUTE11,
pove.GLOBAL_ATTRIBUTE12,
pove.vendor_site_id
from
btbr_cash_invoice_20081002 btbr
inner join ap_invoices_all apin
on btbr.txt_fiscal_DOCUMENT_NUMBER = apin.invoice_num
inner join po_vendor_sites_all pove
on apin.vendor_id = pove.vendor_id
where pove.GLOBAL_ATTRIBUTE10 || pove.GLOBAL_ATTRIBUTE11 || pove.GLOBAL_ATTRIBUTE12
= '0' || btbr.txt_fed_gov_tax_number
and pove.vendor_site_id = apin.vendor_site_id;
cursor C_CASH_INVOICE_ri is
select
btbr.txt_fiscal_DOCUMENT_NUMBER,
btbr.txt_fed_gov_tax_number,
reci.ENTITY_ID,
reci.invoice_amount,
reci.invoice_date,
pove.vendor_site_id,
pove.GLOBAL_ATTRIBUTE10,
pove.GLOBAL_ATTRIBUTE11,
pove.GLOBAL_ATTRIBUTE12
from
btbr_cash_invoice_20081002 btbr
inner join rec_invoices reci
on btbr.txt_fiscal_DOCUMENT_NUMBER = reci.invoice_num
inner join rec_fiscal_entities_all refi
on reci.ENTITY_ID = refi.entity_id
inner join po_vendor_sites_all pove
on pove.vendor_site_id = refi.vendor_site_id
where reci.invoice_date = btbr.invoice_date
and pove.GLOBAL_ATTRIBUTE10 || pove.GLOBAL_ATTRIBUTE11 || pove.GLOBAL_ATTRIBUTE12
= '0' || btbr.txt_fed_gov_tax_number;
BEGIN
FOR S_INV IN C_CASH_INVOICES LOOP
UPDATE BTBR_CASH_INVOICE_20081002
SET FLG_ORACLE = 1
WHERE txt_fiscal_DOCUMENT_NUMBER = S_INV.txt_fiscal_DOCUMENT_NUMBER
AND txt_fed_gov_tax_number = S_INV.txt_fed_gov_tax_number;
end loop;
FOR S_INV_ri IN C_CASH_INVOICE_ri LOOP
UPDATE BTBR_CASH_INVOICE_20081002
SET FLG_ORACLE = 1
WHERE txt_fiscal_DOCUMENT_NUMBER = S_INV.txt_fiscal_DOCUMENT_NUMBER
AND txt_fed_gov_tax_number = S_INV_ri.txt_fed_gov_tax_number;
end loop;
end;
/
não sei porque acontece esse tipo de erro
desde já agradeço a ajuda de vocês
rerodrig
Rank: Programador Júnior
Mensagens: 27 Registrado em: Qua, 06 Fev 2008 10:33 am
Localização: Americana - SP
Qui, 23 Out 2008 12:25 pm
Cara, lá no final, onde você faz o loop no segundo cursor, você está referenciando um campo do primeiro cursor que já foi fechado no loop acima...falow!
bart_wagner
Rank: Programador Júnior
Mensagens: 18 Registrado em: Sáb, 09 Jun 2007 7:41 am
Localização: Peruibe - SP
Qui, 23 Out 2008 12:30 pm
cara não entendi poderia me detalhar melhor
os dois loops passam por cursores com campos iguais, só tendo diferença em uma tabela entre um cursor e outro
bart_wagner
Rank: Programador Júnior
Mensagens: 18 Registrado em: Sáb, 09 Jun 2007 7:41 am
Localização: Peruibe - SP
bart_wagner
Rank: Programador Júnior
Mensagens: 18 Registrado em: Sáb, 09 Jun 2007 7:41 am
Localização: Peruibe - SP
Qui, 23 Out 2008 12:36 pm
ORA-01722: número no válido
ORA-06512: en línea 50
agora apareceu este erro, alguém conhece???
Selecionar tudo
declare
CURSOR C_CASH_INVOICES IS
select
btbr.txt_fiscal_DOCUMENT_NUMBER,
btbr.txt_fed_gov_tax_number,
apin.vendor_id,
pove.GLOBAL_ATTRIBUTE10,
pove.GLOBAL_ATTRIBUTE11,
pove.GLOBAL_ATTRIBUTE12,
pove.vendor_site_id
from
btbr_cash_invoice_20081002 btbr
inner join ap_invoices_all apin
on btbr.txt_fiscal_DOCUMENT_NUMBER = apin.invoice_num
inner join po_vendor_sites_all pove
on apin.vendor_id = pove.vendor_id
where pove.GLOBAL_ATTRIBUTE10 || pove.GLOBAL_ATTRIBUTE11 || pove.GLOBAL_ATTRIBUTE12
= '0' || btbr.txt_fed_gov_tax_number
and pove.vendor_site_id = apin.vendor_site_id;
cursor C_CASH_INVOICE_ri is
select
btbr.txt_fiscal_DOCUMENT_NUMBER,
btbr.txt_fed_gov_tax_number,
reci.ENTITY_ID,
reci.invoice_amount,
reci.invoice_date,
pove.vendor_site_id,
pove.GLOBAL_ATTRIBUTE10,
pove.GLOBAL_ATTRIBUTE11,
pove.GLOBAL_ATTRIBUTE12
from
btbr_cash_invoice_20081002 btbr
inner join rec_invoices reci
on btbr.txt_fiscal_DOCUMENT_NUMBER = reci.invoice_num
inner join rec_fiscal_entities_all refi
on reci.ENTITY_ID = refi.entity_id
inner join po_vendor_sites_all pove
on pove.vendor_site_id = refi.vendor_site_id
where reci.invoice_date = btbr.invoice_date
and pove.GLOBAL_ATTRIBUTE10 || pove.GLOBAL_ATTRIBUTE11 || pove.GLOBAL_ATTRIBUTE12
= '0' || btbr.txt_fed_gov_tax_number;
BEGIN
FOR S_INV IN C_CASH_INVOICES LOOP
UPDATE BTBR_CASH_INVOICE_20081002
SET FLG_ORACLE = 1
WHERE txt_fiscal_DOCUMENT_NUMBER = S_INV.txt_fiscal_DOCUMENT_NUMBER
AND txt_fed_gov_tax_number = S_INV.txt_fed_gov_tax_number;
end loop;
FOR S_INV_ri IN C_CASH_INVOICE_ri LOOP
UPDATE BTBR_CASH_INVOICE_20081002
SET FLG_ORACLE = 1
WHERE txt_fiscal_DOCUMENT_NUMBER = S_INV_ri.txt_fiscal_DOCUMENT_NUMBER
AND txt_fed_gov_tax_number = S_INV_ri.txt_fed_gov_tax_number;
end loop;
end;
/
dr_gori
Moderador
Mensagens: 5018 Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Qui, 23 Out 2008 1:43 pm
Vou te apresentar um site:
http://ora-code.com/
Neste site você encontra todos os erros do oracle E o que está acontecendo de errado.
No site da ORACLE também o manual de ERROS, que explica o que é cada erro.
Neste seu caso acima:
Significa que tem um NÚMERO INVÁLIDO na linha 50!
Traduzindo: Precisa ser um número, mas tu ta passando algo que NÃO É NUMERO. Revise os parametros, ou as informações dos campos. Aposto que é naquele local com um monte de || ...
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes