IT技术博客大学习 共学习 共进步

SQLULDR2从标准输入读取SQL

AnySQL.net 2010-03-12 09:17:34 浏览 2,942 次

    从今天开始, SQLULDR2可以从标准输入设备接受复杂的SQL语句了. 如下所示, SQL是人工输入的, 而最后一行的反斜杆用来表示输入结束.

D:\>sqluldr2 scott/tiger file=- sql=-
select
*
from tab
/
DBOBJECTS,TABLE,
BLOB,TABLE,
SPACE_DAILY,TABLE,
SQLULDR2_LOG,TABLE,
TRADE_MONTHLY_SUMMARY,TABLE,
TRADE_DATA,TABLE,

    这个可以省去创建SQL文件的步骤, 更重要的是在Linux的Shell或Perl脚本中调用SQLULDR2, 并传入复杂的SQL时, 也不需要创建SQL文件了, 而且很容易使用Shell或Perl中的变量, 进行替换生成动态的SQL. 例如, 我们经常会见到如下脚本.

sqlplus -s "/ as sysdba" << EOF
select
*
from tab;
exit
EOF

    现在SQLULDR2也可以这样用了, 在Linux的Shell或Perl脚本中同样使用.

sqluldr2 sys file=- sql=- << EOF
select
*
from tab
EOF

    使用这个功能, 可以使嵌入SQLULDR2的批脚本更具有通用性, 方便移值到不同的平台.

建议继续学习

  1. SQLULDR2处理MySQL的空值 (阅读 3,523)