oracle語句insert into select如何加后續插入條件
oracle中有批量插入語句insert into tableA (列1,列2,列3) select 列1,列2 from tableB。現在問題是這樣的,tableA有3列,而通過最后的select語句所能獲得的列只有列1和列2。但列3是非空的,所以插入時必須填寫。
A中有3例,B表中你只能獲得2列,可以用常量占位解決
insert into tableA (列1,列2,列3) select 列1,列2,常量 from tableB
例:如下
insert into tableA (列1,列2,列3) select 列1,列2,'123' from tableB 【字符串常量】
insert into tableA (列1,列2,列3) select 列1,列2,123 from tableB 【數值常量】
oracle存儲過程select語句必須帶into嗎
oracle存儲過程select語句必須帶into。
因為要將查詢結果放到變量中,如以下存儲過程: create or replace procedure p_testasv_begintime varchar2(20);v_endtime varchar2(20);v_str varchar2(10);begin v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); select 'badkano' into v_str from dual; v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'); dbms_*_line('開始時間為:'||v_begintime); dbms_*_line('結束時間為:'||v_endtime);end;其中select 'badkano' into v_str from dual;此句就是將“badkano”放入變量“v_str”中。
oracle 中SQL 語句開發語法 SELECT INTO含義
和sqlserver的不一樣
sqlserver或者access中select into 是通過查詢數據來建表
oracle中,這個select into不能在語句中執行,必須要放到存儲過程,函數等等里邊執行
譬如select to_char(sysdate,'yyyy-mm-dd') into v_date from dual;
這個v_date是用來放變量的,在后續的過程中來調用這個變量
但是這個一次只能放一個值,如果值過多的話需要用到游標
你說的非維護語法是啥意思啊?你要有不懂的可以繼續問,但是資料的確不多,都是自己寫的被我放論壇上了
oracle存儲過程select語句必須帶into嗎
oracle存儲過程select語句必須帶into。因為要將查詢結果放到變量中,如以下存儲過程:
create or replace procedure p_test
as
v_begintime varchar2(20);
v_endtime varchar2(20);
v_str varchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
select 'badkano' into v_str from dual;
v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
dbms_*_line('開始時間為:'||v_begintime);
dbms_*_line('結束時間為:'||v_endtime);
end;其中select 'badkano' into v_str from dual;此句就是將“badkano”放入變量“v_str”中。
轉載請注明出處華閱文章網 » Oracleinto語句