0
我已經在循環以類似的方式創建了一個選擇:甲骨文的sqlplus不循環返回值與選擇
for i in (select column_name from all_tab_columns where table_name = '')
strinvar := i.column_name
當PLSQL開發執行將返回此代碼: COLUMN1 COLUMN2 等
當我試圖在sqlplus執行這個我沒有得到任何結果。還我試圖做到這一點在sqlplus和打印文件的結果,如:
for i in (select column_name from all_tab_columns where table_name = '')
strinvar := i.column_name
utl_file.put_line(Filehandle, strinvar);
但它沒有打印任何東西。我錯過了什麼嗎? 最後一個問題與獲得的SELECT語句中值從變量喜歡做的事:
declare
tab_name varchar2(100) := 'Test';
Begin
for i in (select column_name from all_tab_columns where table_name = tab_name)
strinvar := i.column_name
utl_file.put_line(Filehandle, strinvar);
我能有這樣的事情或者我應該創建一個表名光標並從光標取名字?
你可以請教我。 問候 喬治·喬治
除了你的代碼無效 - 缺少'loop'和'end loop',缺少分號等,你似乎在尋找一個名爲'null'的表 - 並且假設你實際上運行的是相同的(有效)代碼,你作爲同一個用戶連接,還是至少有兩個用戶可以訪問你獲得列的表? –
我上面寫的代碼只是僞代碼,它不會編譯,因爲我不在工作中看到實際的代碼。另外在查詢我記得我試過從all_tab_columns選擇column_name其中table_name =''和所有者=用戶,也沒有任何區別。我的問題必須要做的是,我是否可以在sqlplus中執行for stmt以及如果我可以將表名稱作爲變量 –