調用從批處理文件中的SQL腳本如下如何繞過字符串單引號中的批處理文件
@script.sql "pass" "primary_key_1"
調用腳本顯示爲
insert into values(pass,primary_key_1)
我想出現
insert into values('pass','primary_key_1')
調用從批處理文件中的SQL腳本如下如何繞過字符串單引號中的批處理文件
@script.sql "pass" "primary_key_1"
調用腳本顯示爲
insert into values(pass,primary_key_1)
我想出現
insert into values('pass','primary_key_1')
如果您使用帶有雙引號或單引號括起來的參數或只用單引號括起腳本:
@echo off
echo INSERT INTO VALUES(%~1, %~2)
pause
或者,如果你不帶單引號稱之爲:
@echo off
echo INSERT INTO VALUES('%~1', '%~2')
pause
糾正我,好像有什麼事我誤解,並隨時提問!
創建功能
create or replace FUNCTION "SQL_QUOTE"
(
p_str IN VARCHAR2
) return VARCHAR2
is
BEGIN
return '''' || p_str ||'''';
END;
用法:
select 'This is a ' || sql_quote('quoted-string') || ' in a string;' from dual;
因此您的線路變得
insert into values(sql_quote('pass'),sql_quote('primary_key_1'))
如果script.sql其中:
INSERT INTO <some_table> VALUES ('&1', '&2');
然後
從SQL調用script.sql * Plus中,像這樣:
@script.sql 'pass' 'primary_key_1'
應該產生預期的結果。
在操作系統命令提示符下調用它:
sqlplus user/[email protected] @script.sql "pass" "primary_key_1"
也應該有希望的結果。
你嘗試了什麼?發生了什麼,例如,當你試圖通過'''pass''''時? – mathguy
@mathguy INSERT INTO XML_AUDIT VALUES(Businessl,Progress,SYSTIMESTAMP)仍然是同樣的問題。我想單引號變量,我通過 – zeesu