varSQL: = 'DECLARE
varOptionId NUMBER;
varXML XMLTYPE;
varHsCode VARCHAR2(200);
varHsCodeCount NUMBER;
varId NUMBER;
RVAL OBJ_RETURN:=OBJ_RETURN(NULL,NULL,NULL,NULL);
BEGIN
varXML:=:refXML;
varHsCode:= varXML.EXTRACT('/OBJECT/HsCodes/HsCode/text()').GETSTRINGVAL();
:out:=varHsCode;
END';
EXECUTE IMMEDIATE varSQL USING PXML,OUT varOut;
Yürütme Geçme:XML Bu aşağıdaki hatayı veriyor acil
ORA-06550: satır 9, sütun 15: PLS-00382: ifadesi yanlış tip ORA-06550 taşımaktadır: hat 9, sütun 2: PL/SQL: Bildirimi yok sayılır ORA-06512: "BIZZXE_V2_SCH.SYSTEM_UTILITY", satır 225 06550. 00000 - "satır% s, sütun% s: \ n% s" * Neden: Genellikle bir PL/SQL derleme hatası. * İşlem:
XML iletmek mümkün mü?
Neden doğrudan çalıştırmıyorsunuz? – ibre5041
Bunun için neden dinamik SQL kullanmak istediğinize dair bir fikriniz yok, ancak varSQL string değerinde unescape tek tırnak işareti var. Bağlamız yok, bu yüzden 'EXECUTE IMMEDIATE' paketinizin gövdesinin 225 satırı olduğunu doğrulayabilir ve bu, paketi derlerken gördüğünüz bir çalışma zamanı hatası değil midir? –
Ve evet, sadece bir kodun bir sürümü ile denenmiş bazı hatalar düzeltilmiş bir XMLType iletebilirsiniz - eksik noktalı virgül, ilk satırda yanlış atama, kaçan tırnak. Gerçekte çalıştığınızı gösterdiğinizde, gördüğünüz hatayı yeniden oluşturmak için kullanabileceğimiz bir kod bloğu olarak faydalı olabilir. PXML aslında XMLType veya varchar2/CLOB mu? Bir dize ise bu hatayı alacaksınız, bu yüzden sorun budur. –