我想寫一個非常簡單的SQL腳本: select * from table_X; 我想看看oracle sqlplus中的結果,如果有的話。這些結果對於進一步分析非常重要。 另外值得一提的是,它取決於最初創建了多少個表,因此很有可能table_X根本不在數據庫中。但是,我想避免在解析時出現錯誤,即在運行上述腳本時table_X不存在。oracle - 混合SQL代碼與PLSQL時WHERE語句中沒有綁定
所以我想換行SQL到一些PLSQL動態代碼,就像這樣:
Define table_X="MY_TAB"
DECLARE
stmt_ VARCHAR2(2000);
exist_ number := 0;
CURSOR table_exist IS
SELECT 1
FROM user_tables
WHERE table_name = '&table_X';
BEGIN
OPEN table_exist;
FETCH table_exist INTO exist_;
CLOSE table_exist;
IF exist_ = 1 THEN
stmt_ := 'SELECT * FROM &table_X';
EXECUTE IMMEDIATE stmt_;
ELSE
dbms_output.put_line('This functionality is not installed.');
END IF;
END;
/
- 爲什麼我看不到任何結果(記錄),如果在my_tab上的數據?我真的需要綁定一些列並使用前。 dbms_output能夠看到一些信息?
- 是否有任何簡單的方法來查詢表沒有得到'ORA-00942:表或視圖不存在' 如果該表不存在(理想情況下只使用SQL)?
在此先感謝
有在腳本的開頭你嘗試添加'設置SERVEROUTPUT on'? http://www.adp-gmbh.ch/ora/sqlplus/serveroutput.html – FrustratedWithFormsDesigner
此外,您的問題#2應該移動到一個單獨的StackOverflow問題,因爲它不是真的與您的輸出問題有關。 – FrustratedWithFormsDesigner