我只想问一下在UNIX中创建一个简单的SQL select语句时的步骤,在IF..THEN..FI语句内部/内部。
我知道如何在SQL*Plus中使用'select‘和'if..then’语句,但我在使用UNIX脚本指向变量时遇到了困难:如果'ABC‘改为'Select...’
示例:
如果"$?“= 'ABC‘,则从表名中选择雇员if、姓名、年龄;否则退出1 fi
如果"$?“= 'XYZ‘,则从表名中选择雇员if、姓名、年龄;否则退出1 fi
如何在UNIX脚本中更正确、更准确地使用语法和切中要害?
谢谢。
发布于 2008-11-11 21:49:43
这听起来像是在尝试将SQLPlus嵌入到shell脚本中。根据记忆,咒语应该是这样的:
if [ $? -eq ABC ]; then
SQLPLUS /S USER/PASS@Instance <<EOF
SET echo off;
SET pagesize 0;
SET heading off;
SPOOL foo.out
select foo from bar
EOF
fiSQLPLUS和EOF之间的所有内容都被传递给SQLPlus,因此我们有一些语句来控制格式化(您可能需要不同的语句)和实际的查询。SQLPlus脚本中的假脱机命令将输出发送到文件。有关使用SQLPlus的更多详细文档,可以从Oracle's web site.下载
发布于 2008-11-12 01:25:36
请记住,echo是您的朋友。
if [ "$?" = "ABC" ] then echo SELECT employid, name, age FROM tablename; else exit 1; fi您可以嵌入shell脚本变量等。注意需要引用shell想要执行的操作,比如引号和分号。
发布于 2008-12-30 20:31:55
您是否考虑过使用perl或其他包含数据库连接功能的脚本语言。这样就避免了笨拙的shell脚本/SQL*Plus链接
https://stackoverflow.com/questions/282222
复制相似问题