2016-11-29 39 views
-1

調用從批處理文件中的SQL腳本如下如何繞過字符串單引號中的批處理文件

@script.sql "pass" "primary_key_1" 

調用腳本顯示爲

insert into values(pass,primary_key_1) 

我想出現

insert into values('pass','primary_key_1') 
+0

你嘗試了什麼?發生了什麼,例如,當你試圖通過'''pass''''時? – mathguy

+0

@mathguy INSERT INTO XML_AUDIT VALUES(Businessl,Progress,SYSTIMESTAMP)仍然是同樣的問題。我想單引號變量,我通過 – zeesu

回答

0

如果您使用帶有雙引號或單引號括起來的參數或只用單引號括起腳本:

@echo off 
echo INSERT INTO VALUES(%~1, %~2) 
pause 

或者,如果你不帶單引號稱之爲:

@echo off 
echo INSERT INTO VALUES('%~1', '%~2') 
pause 

糾正我,好像有什麼事我誤解,並隨時提問!

0

創建功能

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')) 
0

如果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" 

也應該有希望的結果。

相關問題