读取sql文件中的文本文件(Reading a textfile inside an sql file)

编程入门 行业动态 更新时间:2024-10-11 21:25:38
读取sql文件中的文本文件(Reading a textfile inside an sql file)

我有一个.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命令对每个赋值重复SOURCE c:/dev/*提到的文件。

有没有办法可以从不同的测试文件中读取文件名,这样我就可以避免我的.sql文件中的代码冗余。

任何帮助,将不胜感激!

谢谢

I have an .sql file with a set of assignments and source files mentioned in it: The file looks like below:

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

The files mentioned in the SOURCE c:/dev/* is repeating for each assignment using the SET command.

Is there a way by which I can read the file names from a different test file , so that i can avoid the redundancy of the code inside my .sql file.

Any help would be appreciated!

Thanks

最满意答案

尝试:

文件: /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)

Try:

File: /path/to/file/test.sql

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

File: /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
 

File: /path/to/file/master.sql

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

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

Test:

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)

                    
                     
          

更多推荐

本文发布于:2023-08-01 07:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1354200.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文本文件   文件   sql   file   textfile

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!