2016-04-25 18 views
0

内のテキストファイルの読み込み:
ファイルは以下のようになります。SOURCE c:/dev/*で言及私はそれに言及した割り当てとソースファイルのセットで.sqlファイルを持っているSQLファイル

SET @NAME='ABC' 
SOURCE c:/dev/test.sql 
SOURCE c:/dev/test1.sql 
. 
. 
. 
SOURCE c:/dev/test100.sql 

SET @NAME='MNO' 
SOURCE c:/dev/test.sql 
SOURCE c:/dev/test1.sql 
. 
. 
. 
SOURCE c:/dev/test100.sql 

をファイルされますSETコマンドを使用して各割り当てごとに繰り返します。

私は別のテストファイルからファイル名を読み取ることができるので、私の.sqlファイル内のコードの冗長性を避けることができます。

助けていただけたら幸いです!

おかげ

+1

まず、あなたが使用しているDBMSを決定する必要があります。確かに、あなたはmysql、SQLサーバーとオラクルのためにこれを必要としませんか?あなたがしても答えは大きく違うでしょう。 –

+0

私はmysqlを使用しています。とにかくコードを最小限に抑えるためにはありますか?私は 'SOURCE ... 'への入力として100のsqlsを持っています – Neethu

+0

うまくいけば誰かが助けることができます。私はSQL Serverの人であり、mysqlを綴ることさえできません。 –

答えて

1

試してみてください。

ファイル:/path/to/file/test.sql

SELECT CONCAT('FROM test.sql @`NAME`: ', @`NAME`); 

ファイル:/path/to/file/allTestFiles.sql

SOURCE /path/to/file/test.sql 
SOURCE /path/to/file/test1.sql 
SOURCE /path/to/file/test2.sql 
# . 
# . 
# . 
# SOURCE /path/to/file/test100.sql 

ファイル:/path/to/file/master.sql

SET @`NAME` := 'ABC'; 
SOURCE /path/to/file/allTestFiles.sql 

SET @`NAME` := 'MNO'; 
SOURCE /path/to/file/allTestFiles.sql 

はテスト:

mysql> SOURCE /path/to/file/master.sql 
Query OK, 0 rows affected (0.00 sec) 

+--------------------------------------------+ 
| CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | 
+--------------------------------------------+ 
| FROM test.sql @`NAME`: ABC     | 
+--------------------------------------------+ 
1 row in set (0.00 sec) 

+---------------------------------------------+ 
| CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | 
+---------------------------------------------+ 
| FROM test1.sql @`NAME`: ABC     | 
+---------------------------------------------+ 
1 row in set (0.00 sec) 

+---------------------------------------------+ 
| CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | 
+---------------------------------------------+ 
| FROM test2.sql @`NAME`: ABC     | 
+---------------------------------------------+ 
1 row in set (0.00 sec) 

Query OK, 0 rows affected (0.00 sec) 

+--------------------------------------------+ 
| CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | 
+--------------------------------------------+ 
| FROM test.sql @`NAME`: MNO     | 
+--------------------------------------------+ 
1 row in set (0.00 sec) 

+---------------------------------------------+ 
| CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | 
+---------------------------------------------+ 
| FROM test1.sql @`NAME`: MNO     | 
+---------------------------------------------+ 
1 row in set (0.00 sec) 

+---------------------------------------------+ 
| CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | 
+---------------------------------------------+ 
| FROM test2.sql @`NAME`: MNO     | 
+---------------------------------------------+ 
1 row in set (0.00 sec) 
関連する問題