iT邦幫忙

0

oracle 宣告變數 新手問一個簡單的問題

SQL 2005上可執行

declare @n_id int
set @n_id = 12
select * from tt11
where item = @n_id

oracle 11G上,無法執行,請問如何改

DECLARE
   n_id NUMBER;
BEGIN
n_id:= 11;
select * from tt11
where item = n_id
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
尼克
iT邦大師 1 級 ‧ 2018-10-08 15:50:10
DECLARE
   n_id NUMBER;
   bb NUMBER;
BEGIN
n_id:= 11;
select aa INTO bb from tt11
where item = n_id;
END;

或是用VIEW

看更多先前的回應...收起先前的回應...
阿偉 iT邦新手 2 級 ‧ 2018-10-08 16:50:15 檢舉

大哥好,請問一下
select aa into bb from table
不知道我的理解對不對
從table找出aa然後放入bb顯示出來
若有誤可否詳細解說一下,謝謝。

再來如果我要找全部*
那bb處該如何改? (會顯示位置不夠放資料)

我select item也跑不出來
item資料型態是number沒錯

DECLARE
   n_id NUMBER;
   bb NUMBER;
BEGIN
n_id:= 11;
select item into bb from tt11
where item  = n_id;
END;

顯示
錯誤報告 -
ORA-06550: 第 3 行, 第 7 個欄位:
PLS-00215: String length constraints must be in range (1 .. 32767)
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
已順利完成 PL/SQL 程序.

哈..我也想知道為什麼宣告都會報錯~

DECLARE
   n_id NUMBER;

線上oracle測試
http://sqlfiddle.com/

尼克 iT邦大師 1 級 ‧ 2018-10-08 17:00:03 檢舉

PLS-00215: String length constraints must be in range (1 .. 32767)
這不是答案嗎?

阿偉 iT邦新手 2 級 ‧ 2018-10-08 17:02:00 檢舉

我在這測試也報錯...

https://ithelp.ithome.com.tw/upload/images/20181008/20082456aThGv9rtBL.jpg

跟訊息答案無關@@..
重點到底是哪個SQL寫法才正確~
才不會跳出錯誤訊息...

阿偉 iT邦新手 2 級 ‧ 2018-10-08 17:48:16 檢舉

尼克

請問一下我現在沒報錯了
開一個新頁面就正常了
但沒顯示值
只出現 已順利完成 PL/SQL 程序.
如何顯示值?

尼克 iT邦大師 1 級 ‧ 2018-10-08 18:29:56 檢舉

值已經在 bb 裡面呀!

阿偉 iT邦新手 2 級 ‧ 2018-10-09 09:03:34 檢舉

以前沒用過into,請問一下要如何selest BB資料呢?
into應該沒有實際建立在資料庫上 (我看資料庫沒新增資料表)

DECLARE
   n_id NUMBER;
   new_tb NUMBER;
   new_tb2 varchar(15);
BEGIN
n_id:= 5;
select TC_SFB03,TC_SFB04 into new_tb,new_tb2 
from tc_sfb_file
where TC_SFB03  = n_id
and tc_sfb01 ='1511-170623008' ;
END;

select * from new_tb,new_tb2
好像無法用這串查資料

尼克 iT邦大師 1 級 ‧ 2018-10-09 13:21:24 檢舉
select * from dual

上面方法只是把值顯示出來,我只能根據你的需求反應事實,實際你要的目的只有你自己清楚。

阿偉 iT邦新手 2 級 ‧ 2018-10-09 16:02:29 檢舉

只查到一個x
https://ithelp.ithome.com.tw/upload/images/20181009/20082456qsWYgq7YMt.jpg

DECLARE
   n_id NUMBER;
   new_tb NUMBER;
   new_tb2 varchar(15);
BEGIN
n_id:= 5;
select TC_SFB03,TC_SFB04 into new_tb,new_tb2 
from tc_sfb_file
where TC_SFB03  = n_id
and tc_sfb01 ='1511-170623008' ;
END;
select * from dual

我要發表回答

立即登入回答