2012-04-12 33 views
0

我正在嘗試創建特定的sql文本區域來執行任何查詢,最終用戶將輸入 我收到以下錯誤消息: 發生了1個錯誤•ORA-06550:第5行第1列:PLS-00372:在過程中,RETURN語句不能包含表達式ORA-06550:第5行,第1列:PL/SQL:語句被忽略APEX Web應用程序中的AD HOC SQL查詢區域

我創建了一個項目查詢區域P2_X 和一個按鈕來執行它。

DECLARE 
v_sql VARCHAR2 (4000); 
BEGIN 
v_sql := :P2_X; 
return v_sql; 
END; 

我在做什麼錯?

您的幫助表示讚賞。

+0

我創建了一個經典的報告作爲一個區域,並選擇了泛型列,並收到了以下內容:未能解析SQL查詢:ORA-00942:表或視圖不存在沒有價值回報。我將如何將其更改爲顯示它不爲null的執行立即命令? – user1329606 2012-04-12 18:46:45

+0

如果您允許用戶執行任意SQL,請注意(並且非常害怕)SQL注入攻擊的可能性。 – 2012-04-13 01:50:43

回答

1

這是行不通的。您顯示的代碼位於SQL報告區域的源代碼中。您還需要選擇「通用列」: enter image description here

+0

我創建了一個過程並將其放入過程中。當我嘗試將它放在報表的Region源文件中時,我收到以下錯誤消息:發生了1個錯誤• 查詢無法解析,請檢查查詢的語法。 (ORA-20001:查詢必須以SELECT或WITH開頭) (轉至錯誤) – user1329606 2012-04-12 16:31:27

+0

這是因爲正如我所說:創建區域時還需要選擇「通用列」單選按鈕。 – 2012-04-12 16:34:32

+0

對不起。我是3周前的APEX新手。我也會嘗試添加。 – user1329606 2012-04-12 16:38:29