从批处理文件中调用sql脚本,如下所示
import
调用脚本显示为
@script.sql "pass" "primary_key_1"
我希望显示为
insert into values(pass,primary_key_1)
答案 0 :(得分:0)
如果您使用双引号和单引号括起来的参数或仅使用单引号调用脚本:
@echo off
echo INSERT INTO VALUES(%~1, %~2)
pause
或者,如果您在没有单引号的情况下调用它:
@echo off
echo INSERT INTO VALUES('%~1', '%~2')
pause
纠正我,如果有什么我误解了,可以随意提问!
答案 1 :(得分: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'))
答案 2 :(得分:0)
如果script.sql在哪里:
INSERT INTO <some_table> VALUES ('&1', '&2');
然后
从SQL * Plus调用script.sql,如下所示:
@script.sql 'pass' 'primary_key_1'
应该产生预期的结果。
从OS命令提示符调用它:
sqlplus user/password@db @script.sql "pass" "primary_key_1"
也应该有所需的结果。