पर एक कर्सर घोषित करें मैं एक सारणी पर एक कर्सर घोषित करना चाहता हूं जो मौजूद नहीं है। बेशक, मेरी प्रक्रिया संकलित नहीं है।ओरेकल पीएलएसक्यूएल - एक गैर-मौजूदा तालिका
यह तालिका एक अस्थायी तालिका है, और एक पूर्व प्रक्रिया द्वारा बनाई गई है। यह रनटाइम पर मौजूद होगा, लेकिन संकलन समय पर इसकी एक और कहानी होगी।
मेरे चयन के लिए/अपडेट करती है, अन्य DML कार्रवाई, मैं
EXECUTE IMMEDIATE 'operation from tmp_table'
का उपयोग किया है, लेकिन मैं कर्सर के लिए एक समाधान नहीं मिल रहा।
क्या कोई तरीका है?
SQL> declare
2 c sys_refcursor;
3 BEGIN
4 open c for 'select * from pepito'; -- 'pepito' does not exist
5 close c;
6 end;
7/
declare
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at line 4
प्रक्रिया बनाएं, धन्यवाद का उपयोग करना चाहिए:
मूल रूप से, मैं इस संकलन करने
drop table test;
/*from this on should compile*/
DECLARE
cursor c is select * from test;
BEGIN
for reg in c LOOP
/*...*/
END LOOP;
END;
अद्यतन
अब तक संकलन नहीं चाहते हैं।
अग्रिम धन्यवाद।
का कारण नहीं है, क्योंकि आप वास्तव में कोड को चलाने के लिए आप अपवाद मिल में अच्छा अभ्यास माना जाता है। कोड को संकलित करने के लिए 'प्रक्रिया प्रक्रिया test_cursor AS' बनाएं' द्वारा अपना 'घोषित करें' बदलें। –
: फेसपाल्म 15cccc – Tom
TOAD में कोई संकलन बटन नहीं है। : एस यह छोटा होना चाहिए !!! – Tom