ho creato una tabella molto semplice:Oracle Query - Missing Definisce
CREATE TABLE TMP ("ID" VARCHAR2(20 BYTE));
poi ha cercato di fare questo:
DECLARE
whatever varchar2(20) := :bananas;
BEGIN
MERGE INTO tmp t USING
(SELECT whatever AS this_id FROM DUAL) d
ON (t.id = d.this_id)
WHEN NOT MATCHED THEN
INSERT (id) VALUES (d.this_id);
END;
E poi inserire lega
E ottenere questo errore:
Error starting at line : 1 in command -
DECLARE
whatever varchar2(20) := :bananas;
BEGIN
MERGE INTO tmp2 t USING
(SELECT whatever AS this_id FROM DUAL) d
ON (t.id = d.this_id)
WHEN NOT MATCHED THEN
INSERT (id) VALUES (d.this_id);
END;
Error report -
Missing defines
Non ho avuto fortuna a capire cosa vuole. Se sostituisco ': bananas' con un valore come 'a' funziona, ma non quando uso una variabile e lego il valore. Qualcuno sa cosa c'è di sbagliato nella mia domanda? Grazie.
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
modificare: Ho appena notato che l'errore non impedisce i dati vengano fuse in modo corretto ... L'errore è ancora preoccupante se
Cosa significa ': banane'? Questo codice è in una stored procedure? Il parametro deve essere definito. –
Stavo solo usando un nome per una variabile. Voglio eseguire questo come una query con clobs, ma stavo avendo questo problema con "Missing definisce" che appare sempre e stava cercando di rimuovere un sacco di codice fino a quando non potrei restringere il problema. –
Rileggi il tuo commento, è definito nella schermata utilizzando la finestra "Inserisci binding" su Oracle SQL Developer –