首页 > 解决方案 > “SQL 缓冲区中没有可运行的内容。” 执行 shell 脚本的消息

问题描述

我正在运行以下 shell 脚本,它调用一个.SQL包含DELETE语句列表的文件。执行时./delete_crr_input_purge.sh,我收到以下消息“ SQL 缓冲区中没有要运行的内容。 ”。.SQL 文件无论如何都会执行,但是我在 shell 脚本中的代码有什么问题?

#!/bin/ksh
#
# @(#)Copyright All Rights Reserved.
# @(#) $Id: run_drm_utility.sh $

# Setup common environment
. `dirname $0`/db_env.sh
cd `dirname $0`

    echo "Enter the SHBA Atomic DB User Name:"
    read USERNAME
    echo "Enter the SHBA Atomic DB User Password:"
    read PASS


cnt=`sqlplus -s /nolog <<-EOF
        WHENEVER OSERROR EXIT 9;
        WHENEVER SQLERROR EXIT SQL.SQLCODE;
        connect $USERNAME/$PASS@$ORACLE_SID
        SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
@delete_crr_input_purge.sql;
commit;

        EOF`
echo [$cnt]

return $?

SQL 缓冲区中没有可运行的内容。

标签: linuxshellshsqlplus

解决方案


我能够通过从我的 .SQL 文件中删除注释和出现的“/”来修复此错误。

另外,我确保我的每条 SQL 语句都在一行中,一个在另一个之下。此外,.SQL 文件中没有提交语句。


推荐阅读