linux - “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 文件中删除注释和出现的“/”来修复此错误。
另外,我确保我的每条 SQL 语句都在一行中,一个在另一个之下。此外,.SQL 文件中没有提交语句。
推荐阅读
- android - 在android中“minifyEnabled true”后未收到通知,为什么?
- python - 如何访问熊猫数据框中前几行的数据?
- javascript - Swiper - 移动幻灯片
- javascript - 需要一些有关登录表单的帮助
- c++ - 如何修复从 readline 输入到输出流
- android - 如何从 Android Studio 的图库中获取所选图像的位置(拍摄图像的位置)?
- php - 如何在php中获取“0”表
- python - 如何在python烧瓶的另一条路线中暂停/恢复子进程
- windows - 编写支持字符集编码的打印驱动程序
- .net-core - 在同一方法中模拟许多 httpClient 调用