gpt4 book ai didi

visual-studio - 从 Visual Studio 执行 Oracle 脚本

转载 作者:行者123 更新时间:2023-12-04 03:35:04 27 4
gpt4 key购买 nike

所以我想从 Visual Studio 执行一个 oracle plsql 脚本。我安装了Oracle's visual studio tools并在连接到 oracle 数据库实例的 VS2010 中打开了一个新的查询窗口。这是我尝试运行的示例脚本:

DECLARE
BEGIN
DBMS_OUTPUT.put_line ('Hello World!'); --tried various types of statements here
END;

无论我尝试将什么放入开始/结束 block 的主体中​​,我都会得到以下内容:

ERROR
ORA-06550: line 4, column 3:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

; <an identifier> <a double-quoted delimited-identifier>
The symbol ";" was substituted for "end-of-file" to continue.

从其他工具(如 sql developer 或 toad)运行时,我没有遇到同样的问题。给了什么?

最佳答案

确保在 END; 之后添加了换行符,即行号。 4 不能是最后一个:

DECLARE
BEGIN
DBMS_OUTPUT.put_line ('Hello World!'); --tried various types of statements here
END; -- press Enter here

Oracle 数据客户端 (Oracle.DataAccess.Client) 对此非常挑剔。

更新:正如我所怀疑的,问题与行尾有关。事实证明,Oracle 不接受 PL/SQL 脚本 block 中的 \r (0x0d) 字符(但在处理普通 SQL 时似乎会忽略它们),但是查询窗口使用标准 Windows 行结尾 \r\n (0x0d 0x0a),这正是导致问题的原因。

我用了Wireshark当我点击 Execute Query 工具栏按钮并选择 Menu -> Tools -> Execute SQL *Plus Script 菜单项时,查看通过网络传输的内容。结果很奇怪,但可以预见:Execute Query 按原样 发送查询文本(我得到了 PLS-00103),而 Execute SQL *Plus Script \r\n 翻译成 \n (命令已成功完成。)

看来你有这些选择:

  1. 通过菜单 -> 工具 -> 执行 SQL *Plus 脚本执行脚本 block
  2. 使用任何能够使用 Unix 样式行尾的编辑器将您的脚本保存到磁盘驱动器,然后从“查询”窗口打开它(它保留现有 文件,我检查过)
  3. 使用比 Oracle Developer Tools for Visual Studio 更智能的东西(我自己更喜欢这个选项)

希望这对您有所帮助。

关于visual-studio - 从 Visual Studio 执行 Oracle 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com