运行 pl/sql 脚本时遇到问题
Posted
技术标签:
【中文标题】运行 pl/sql 脚本时遇到问题【英文标题】:Facing issues while running pl/sql script 【发布时间】:2020-11-27 13:14:03 【问题描述】:通过运行以下脚本在 /etc/udev/rules.d/99-oracle-asmdevices.rules 文件中重建 udev 规则:
i=1
cmd="/sbin/scsi_id -g -u -d"
for disk in sdb sdc sdd sde sdf; do
cat <<EOF >> /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1",SUBSYSTEM=="block", PROGRAM=="$cmd /dev/\$parent", \
RESULT=="`$cmd /dev/$disk`", SYMLINK+="asm-disk$i", OWNER="grid", GROUP="dba", MODE="0660"
EOF
i=$(($i+1))
错误消息:
script.sh:第 11 行:语法错误:文件意外结束
[root@london1 sf_D_DRIVE]# 警告:第 5 行的此处文档由文件结尾分隔(需要 EOF') -bash: syntax error near unexpected token
('
【问题讨论】:
虽然是一个有趣的代码挑战,但归根结底,如果您只是用 vi 打开文件并手动调整/插入设置,那么您现在就完成了。文件中只有 5 行需要处理 有时为了学习如何处理更复杂的问题,有意识地将任务复杂化是值得的。不过,知道何时手动处理它也很好。 【参考方案1】:首先,https://www.shellcheck.net/ - 收藏它,使用它。
我的修正和调整 -
#!/bin/bash
i=0
cmd="/sbin/scsi_id -g -u -d"
for disk in sdb sdc sdd sde sdf
do ((i++)); cat >> /etc/udev/rules.d/99-oracle-asmdevices.rules <<EOF
KERNEL=="sd?1",SUBSYSTEM=="block", PROGRAM=="$cmd /dev/\$parent", \
RESULT=="$($cmd /dev/$disk)", SYMLINK+="asm-disk$i", OWNER="grid", GROUP="dba", MODE="0660"
EOF
done
【讨论】:
感谢您的帮助和链接!我目前正在导入一些文件,之后我一定会这样做。 有帮助吗?如果是这样,请接受解决方案 - 单击复选标记。以上是关于运行 pl/sql 脚本时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
在 PL/SQL 脚本上使用 DB 链接会引发“找不到表”错误
Oracle SQL Developer:运行脚本,出错时继续
传递多个 oracle PL\SQL 块的 C# 得到“遇到符号 /”