存儲過程into
1. 在oracle執行存儲過程出現: 在此select語句中缺少into子句
oracle的存儲過程中不能直接select,必須要將結果放到變數中,即類似select count(*) into count1 from checkTmp這種寫法。
直接寫成select * from checkTmp order by expressID肯定會報錯的,因為oracle不知道你要select干什麼。
2. oracle存儲過程select語句必須帶into嗎
oracle存儲過程select語句必須帶into。因為要將查詢結果放到變數中,如以下存儲過程:
sql">createorreplaceprocerep_test
as
v_begintimevarchar2(20);
v_endtimevarchar2(20);
v_strvarchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
select'badkano'intov_strfromal;
v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
dbms_output.put_line('開始時間為:'||v_begintime);
dbms_output.put_line('結束時間為:'||v_endtime);
end;
其中select 'badkano' into v_str from al;此句就是將「badkano」放入變數「v_str」中。
3. 存儲過程中的select into from是干什麼的
into後邊應該還有個變數名,into前面也還要帶上篩選欄位,例如
select count(*) into v_count from al;
這條語句的意思是查詢al表的所有記錄數,將查詢結果存入v_count變數中,也就是給變數設值的用法
4. ORACLE 存儲過程 在此 SELECT 語句中缺少 INTO 子句,怎麼辦
select出來的結果要放到變數中去,select ... into .... from ... where ....
5. 關於oracle存儲過程select into 未找到數據問題
begin
selectcount(*)intov_countfrombpa_df_rolewheredrename=record_drenameandddnid=ddnid_new;
ifv_count=0
then
selectdreidintodreid_newfrombpa_df_rolewheredrename=record_drenameandddnid=ddnid_new;
update....
else
update...
endif;
end;
類似這樣處理吧,得前邊定義一個v_count的變數,網路這個換行換的真難看,能看懂吧?
不過update後必須要提交,要不重新進來,還是未更改狀態
6. Oracle使用merge into 編寫存儲過程 遇編譯錯誤:PL/SQL: ORA-00926: 缺失 VALUES 關鍵字
Oracle使用猜碼掘merge into 編寫存儲過程 遇編譯錯誤,是設置錯誤造成的,解決方法如下:
1、首先穗核新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。
7. 請教關於oracle中寫存儲過程時 select into 語句報錯的問題
定義一個塊,塊中說明異常情況下如何處理就可以了。
begin
select 欄位 into 變數...
exception
when NO_DATA_FOUND then --未找到時
處理邏輯
when exception_code then --這里的錯誤代碼可以在standard包中找到
處理邏輯
when OTHERS then --default錯誤時
處理邏輯
end;
錯誤代碼可通過如下語句獲得:
select * from dba_source where owner='SYS' and name='STANDARD' and type='PACKAGE' and text like ' pragma EXCEPTION%';