當前位置:首頁 » 編程語言 » sql綁定變數

sql綁定變數

發布時間: 2023-02-07 00:38:47

❶ 拼的sql,怎麼使用綁定變數

很多方法 1.自定義函數返回集合,然後用table,注意計劃,可能要用rownum固定 2.正則表達式 3.INSTR+SUBSTR 4.SYS_CONTEXT 反正不管哪種方法,計劃符合條件,可用到綁定變數,那麼就可以了

❷ 動態SQL中的重復佔位符如何與綁定變數進行

BEGIN calc_stats(:x, :x, :y, :x); END 是一個PL/SQL 代碼段,而非 insert into t6 (a,b,c) values (:x,:y,:x) 這樣的DML,標准SQL語句。

在EXECUTE IMMEDIATE 中,利用USING語句綁定變數時,Oracle遵循針對PL/SQL存儲過程使用佔位符名稱匹配的原則,而針對SQL語句則採用佔位符位置匹配的原則。

PL/SQL 用戶指南與參考 中的 例子如下:

動態SQL語句中的佔位符與USING子句中的綁定參數是位置關聯的,而不是名稱關聯。所以,如果在SQL語句中同樣的佔位符出現兩次或多次,那麼,它的每次出現都必須與一個USING子句中的綁定參數相關聯。例如下面的動態字元串:

sql_stmt := 'INSERT INTO payroll VALUES (:x, :x, :y, :x)';

我們可以為動態字元串編寫對應的USING子句:

EXECUTE IMMEDIATE sql_stmt USING a, a, b, a;

但 是,動態PL/SQL塊中只有唯一的佔位符才與USING子句中的綁定參數按位置對應。所以,如果一個佔位符在PL/SQL塊中出現兩次或多次,那麼所有 這樣相同的佔位符都只與USING語句中的一個綁定參數相對應。比如下面的例子,第一個佔位符(x)與第一個綁定參數(a)關聯,第二個佔位符(y)與第 二個綁定參數(b)關聯。

DECLARE
a NUMBER := 4;
b NUMBER := 7;
BEGIN
plsql_block := 'BEGIN calc_stats(:x, :x, :y, :x); END';

EXECUTE IMMEDIATE plsql_block
USING a, b;
...

END;
---------------------------------------------------------------------------------------------
CREATE TABLE T1 (N1 NUMBER, N2 NUMBER,N3 NUMBER,N4 NUMBER);

BEGIN
EXECUTE IMMEDIATE 'INSERT INTO T1(N1,N2,N3,N4) VALUES (:N1,:N2,:N2,:N1)' USING 1,2;
END;
/

*
ERROR at line 1:
ORA-01008: not all variables bound
ORA-06512: at line 2

BEGIN
EXECUTE IMMEDIATE 'BEGIN INSERT INTO T1(N1,N2,N3,N4) VALUES (:N1,:N2,:N2,:N1); END;' USING 1,2;
END;
/

PL/SQL procere successfully completed.

SELECT * FROM T1;

N1 N2 N3 N4
---------- ---------- ---------- ----------
1 2 2 1

----------------------------------------------

❸ 綁定變數的SQL語句實現

首先用var進行聲明,確定變數名及類型,再使用exec賦值。格式為「:變數名:=變數值」。「:=」為賦值符號,例如「SQL> exec :i:=:i+1;」。使用時通過「:變數名」方式調用。
例如:
SQL> var i varchar2(10);
SQL> exec :i:='sql';
SQL> select * from table_name where name=:i;

❹ 什麼是SQL綁定變數,如何實現綁定變數

--聲明變數
declare @var varchar(50), @sql varchar(1000);
--這里全部都是單引號,沒有雙引號
set @var = '變數';
set @sql = 'select * from post where post_addr like ''%'+@var+'%''';
--注意,sql默認是不支持雙引號的,只能用單引號
exec @sql;

熱點內容
怎麼查看我的wifi密碼 發布:2024-04-25 18:54:43 瀏覽:757
fckeditorforjava 發布:2024-04-25 18:50:27 瀏覽:624
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:675
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:99
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:395
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:221
java教程免費下載 發布:2024-04-25 18:02:01 瀏覽:443
i西安編程 發布:2024-04-25 16:55:35 瀏覽:263
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:432
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319