台灣最大程式設計社群網站
線上人數
768
 
會員總數:245217
討論主題:189089
歡迎您免費加入會員
討論區列表 >> Oracle >> 如何顯示SELECT結果?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何顯示SELECT結果?
價值 : 10 QP  點閱數:4862 回應數:12

樓主

孤獨鳥
初學者
160 9
222 44
發送站內信

我是Oracle 新手,
在SQL Server 中BEGIN...END 裡面可以簡單的寫 select * from Employee 就可以顯示結果.
BEGIN
...
SELECT * FROM Employee;
END;

但改到Oracle 裡面, 我在PL/SQL 視窗中執行下面
DECLARE
id number;
BEGIN
....
SELECT * from Employee;
END;

結果執行會出現 PLS-00428 錯誤 "在此SELECT 敘述句中預期會出現一個 INTO 子句"
好吧, 查了Google 好幾個禮拜之後, 似乎好不容易找到是要改成


DECLARE
id number;
BEGIN
....
EXECUTE IMMEDIATE 'SELECT * from Employee';
END;

但執行結果卻只有顯示 "已順利完成 PL/SQL 程序" 而已,
却不會顯示 SELECT 的結果.... WHY? 快要瘋了....

本篇文章發表於2010-06-20 10:23
== 簽名檔 ==
給我更強大的C#,我給你全世界
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

johnson
檢舉此回應
SELECT * from Employee
本篇文章回覆於2010-06-20 11:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

孤獨鳥
檢舉此回應
dear johnson:
唉~ 你似乎沒看懂我的問題所在, 我知道只要一道指令select * from employee
但要在begin ... end statement ...
PS: 我又不是完全不懂SQL. 你想我會笨到這地步嗎?
本篇文章回覆於2010-06-20 12:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
oracle 的stored procedure與 sql server是差別很多的...

建議你多去查查有關oracle stored procedure的用法


如果你是在clinet端用開發軟體的話,可以使用DBMS_OUTPUT.put_line 這個function輸出到output端去...
本篇文章回覆於2010-06-21 14:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

花旗蔘
檢舉此回應
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20081205160526GL0&fumcde=FUM200410061527578K1
本篇文章回覆於2010-06-21 18:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

孤獨鳥
檢舉此回應
4樓的有提供線索, 這還算是有建設性的...
通常這種人都會回答 "建議你多去查查有關xxx的用法, xxx的書籍",
既然都這樣, 討論區就沒有存在的意義了,
太多人情冷暖,對這個圈子已再沒有憧憬....

那就大家自掃門前雪好了....
本篇文章回覆於2010-06-21 21:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

lsk
捐贈 VP 給 lsk 檢舉此回應
有人回就不錯了,看到你#2的回應,壓根就不想幫你解答
現在是你求人,不是別人求你,尋求別人的幫助,姿態要低一點,誠懇一點
本篇文章回覆於2010-06-22 09:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

孤獨鳥
檢舉此回應
那好, 只要是求人, 就可以回覆也不客氣?

原本好好地發問, 換來一句老大不客氣,
在#2之前就有多少不善意的回應, 這是活該的?
本篇文章回覆於2010-06-22 14:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

lsk
捐贈 VP 給 lsk 檢舉此回應
施主你會不會太主觀了,我倒沒看到哪一篇回覆不客氣
#1我猜應該是沒看清楚你的問題,才會這樣回答,每個人都有沒睡醒的時候吧
#3也是個建議,只是對您幫助很小而已
若您問題已解決就請結案吧
本篇文章回覆於2010-06-22 17:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

孤獨鳥
檢舉此回應
好吧, 算是我小題大做,
不過這問題沒能得到答案,
只能流標....
本篇文章回覆於2010-06-22 20:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

lsk
捐贈 VP 給 lsk 檢舉此回應
http://www.devshed.com/c/a/Oracle/Working-with-REF-CURSOR-in-PL-SQL/
參考一下,我試過是可以work的
但似乎僅能用dbms_output輸出顯示結果
你要的是不是這樣就不知道了
本篇文章回覆於2010-06-23 11:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

孤獨鳥
檢舉此回應
#10 Dear lsk:
這招我有試過, 雖然可以work,
但dbms_output 輸出的結果在Client 無法讀取到,
對吧!?

PS:如果說硬要讀取是可以啦, 但還得自行Parse....就變得很..%#@X
本篇文章回覆於2010-06-24 17:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

一頁書
檢舉此回應
要包成字串
PROCEDURE (
P_RESULT OUT T_CURTYP)
IS
V_SQL VARCHAR2(4000);
V_SQL :=' select * from employee ';

最後
OPEN P_RESULT FOR V_SQL;
本篇文章回覆於2019-07-16 17:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.