複数のsqlファイルを実行し、それらにパラメータを渡すバッチファイルがあります。 入力パラメータは、バッチファイルによって読み取られるtxtファイルに格納されます。バッチファイルでvarchar paramをsqlファイルに渡す
SQLのIN
節にvarchar値を渡そうとしています。
私入力ファイルで
私はこのエントリ
var1="'tommy','jim'"
バッチファイルで
<code to read file , assuming %1 has the var1 value>
set param=%~1
sqlplus %DBCONN% @%programFolder%\test.sql %param%
test.sql内(名前はVARCHAR2です)
select * from table where name in (&1);
これは「ジムの けどで、それは私が右SQLのstmt、そのディスプレイ「トミー」の前にエコー場合
select * from table where name in (tommy);
を実行しようとして、無効な番号 を言って、エラーが発生しますSQLの削除ジムと単一引用符...
助けてください!
は、今私は
var1="'''tommy''','''jim'''"
それはselect * from table where name in ('tommy');
ようになるように、入力ファイル内のエントリを編集した。しかし、それは第二の値にカンマを含める方法
任意の手掛かりを切り捨て??
チルダを削除すると、パラメタはバッチで分離されます。 sqlが 'tommy'だけを表示する前に 'echo%var1%' – Sky