oracle執行拼接的sql
procere proc_test(
in_id in varchar2,
out_sum out varchar2
) as
begin
execute immediate 'select count(*) from table_name '||in_id into out_sum;
end;
/
sqlplus里調用時:
var out_sum varchar2(10)
exec package_name.proc_test('where id=''XXX'' or 1=1',:out_sum)
print out_sum
Ⅱ Oracle Sql 如何將兩個欄位拼接到一塊
select列1from表1
unionall
select列2from表1
Ⅲ oracle中sql語句如何動態拼接
SQL code
--在存儲過程裡面完成唄
--例:
create or replace procere yyp_cwdh(table_name varchar)
is
str_sql varchar2(400):='';
begin
str_sql:='select * from '||table_name||' where 1=1';
execute immediate st……
Ⅳ Oracle [存儲過程] 執行動態拼接SQL語句並返回結果
建議你用 instr函數,v_sql條件改為
where instr(p_jbm,t.jbm)>0試試吧。
Ⅳ oracle sql欄位值拼接問題
SELECT LPAD(CLO_NAME,LENGTH(CLO_NAME)+CLO_NUM) FROM TABLE_NAME
Ⅵ SQL怎麼拼接字元串
不同的資料庫,相應的字元串拼接方式不同,通過對比加深一下記憶。
一、MySQL字元串拼接
1、CONCAT函數
語法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字元串,定長與不定長均可以
連接兩個字元串
(6)oracle執行拼接的sql擴展閱讀
字元串函數(String processing function)也叫字元串處理函數,指的是編程語言中用來進行字元串處理的函數,如C,pascal,Visual以及LotusScript中進行字元串拷貝,計算長度,字元查找等的函數。
字元串主要用於編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「a」,s[10]="j"。
而字元串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入數組。
字元串函數的應用
1、連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn.
例:concat(『11』,'aa』)='11aa』;
2、求子串。 Copy(s,I,I) 從字元串s中截取第I個字元開始後的長度為l的子串。
例:(『abdag』,2,3)=』bda』
3、刪除子串。過程 Delete(s,I,l) 從字元串s中刪除第I個字元開始後的長度為l的子串。
例:s:=』abcde』;delete(s,2,3);結果s:=』ae』
4、插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(『12』,s,2);結果s:=』a12bc』
5、求字元串長度 length(s) 例:length(『12abc』)=5
在ASP中 求字元串長度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字元在s2中的位置,若不是子串,則返回0.
例:pos(『ab』,』12abcd』)=3
7、字元的大寫轉換。Upcase(ch) 求字元ch的大寫體。
例:upcase(『a』)=』A』
8、數值轉換為數串。 過程 Str(x,s) 把數值x化為數串s.
例:str(12345,s); 結果s=』12345』
9、數串轉換為數值。 過程val(s,x,I) 把數串s轉化為數值x,如果成功則I=0,不成功則I為無效字元的序數,第三個參數也可不傳
例:val(『1234』,x,I);結果 x:=1234
Ⅶ oracle 在PLSQL腳本中如何表名稱與數字字元串拼接
使用plsql存儲過程製造一個腳本如:
create or replace procere test_val
(etl_date varchar2, --時間或者數字變數
data out sys_refcursor ---存放數據
) as
s_sql varchar2(1000); --執行sql
begin
s_sql := 'SELECT A,B FROM tsalpludetail' || etl_date ;
--dbms_output.put_line(s_sql);----列印sql可以不需要
open data for s_sql; ---把結果集放入data
end test_val;
執行後,打開存儲過程
至此完成
Ⅷ ORACLE存儲過程中拼接sql語句 後在EXCUTE的時候總是報錯(詳見下面)
對於這種動態SQL的錯誤,我的建議是把PS_SQL類似這樣的字元變數通過dbms_output.putline('PS_SQL
IS:'||PS_SQL);先在命令行列印出來看看,再去執行列印出來的SQL就知道哪個
引號
有問題。
Ⅸ oracle 存儲過程 ,執行拼接sql,給制定參數賦值
execute immediate v_sql into rep_Val;