0
我在bash一个简单的脚本,仅仅通过庆典返回一个给定的表如何通过bash的访问Oracle表时,这是一个新创建的表
的计数特罗命令其像
user>bash Bash_Script.bsh -T MyTableTthatAlreadyExists
之后的连接参数它只是这样做:
SQLSTRING="SELECT COUNT(*) FROM $SYBTAB;"
BATCH_ARGS=`sqlplus -S /nolog <<SQL | tail -1
connect $ORCL_USR/[email protected]$ORCL_TNS;
alter session set nls_date_format='YYYYMMDD';
set pagesize 0 long 4096 linesize 32767 feed off head off;
$SQLSTRING
quit;
SQL`
echo "$BATCH_ARGS"
它的工作。 YEST它的工作原理,它返回我的表的行数。 问题来了,当我创建一个新表MyNewTable - 该表在Oracle中 存在,所以当我在SQL Developer中做
select count(*) from MyNewTable;
返回正确的nummer。
但是当我再次抛出unix命令。它不工作,它不返回任何东西
user>bash Bash_Script.bsh -T MyNewTable --> return nothing
我不知道自己我失踪,我没有考虑我。 我为Grant授予特权,但他们都没有。
任何人都可以帮我吗? 由于提前,恩里克
你什么也得不到 - 不是错误?你确定你的脚本正在达到那个代码吗?你确定你是通过你的脚本和SQL Developer作为同一个用户连接到数据库的吗?并确实对同一个数据库? (如果不是,你应该会看到一个错误...) –
@AlexPoole没有错误。就像表格是空的一样。在bash脚本中,我只是改变了表的名称,旧表返回的数量与新的返回没有任何关系。不知道为什么, - 两个表都在同一个模式和数据库中,他们两个都可以访问抛出SQL Developer,但我只是到了旧的抛出unix。 - 不是一个提交问题左右。 – Enrique
你应该看到零表报告为空表,而不是没有。 –