【问题标题】:SqlPlus SP2-0734: ErrorSqlPlus SP2-0734:错误
【发布时间】:2014-05-22 00:22:09
【问题描述】:

我是使用 SqlPlus 的新手,但对使用 SQL 并不陌生,在我的编辑器中编写此代码并尝试运行我编写的脚本后,我收到以下错误。所有这些似乎都是有效的,并且适用于 sql fiddle...我不确定问题是什么。有任何想法吗??我创建的文件似乎都不起作用....

SQL> start sales.sq;

其中包含

1  create table salesreps
2  (empl_num number(3,0) primary key,
3  name varchar2(15) not null,
4  age number(3,0),
5  rep_office number(2,0),
6  title varchar2(10),
7  hire_date varchar2(10) not null,
8  manager number(3,0),
9  quota number(10,2),
10 sales number(10,2) not null);

产生以下错误

SP2-0734: unknown command beginning "name varch..." - rest of line ignored.
SP2-0734: unknown command beginning "age number..." - rest of line ignored.
SP2-0734: unknown command beginning "rep_office..." - rest of line ignored.
SP2-0734: unknown command beginning "title varc..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
SP2-0734: unknown command beginning "hire_date ..." - rest of line ignored.
SP2-0734: unknown command beginning "manager nu..." - rest of line ignored.
SP2-0734: unknown command beginning "quota numb..." - rest of line ignored.
SP2-0734: unknown command beginning "sales numb..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.

【问题讨论】:

  • 在 unix 中尝试 dos2unix sales.sql sales.sq .. 并执行 sql 文件..
  • 实际上,伙计,我只是对错误进行了更多的谷歌搜索,似乎 sqlplus 不喜欢在行之间添加空格,所以这就是问题...尽管感谢您的帮助
  • 这是一个有用的问题。这看起来像一个糟糕的问题,因为 Oracle 错误消息非常具有误导性。但这正是人们会一次又一次地遇到的那种事情,答案对他们会有所帮助。
  • 就我而言,UTF-8 BOM(字节顺序标记)字符对是罪魁祸首。当您以 UTF-8 格式保存文件时,某些编辑器(主要在 Windows 上)会自动添加这些字节。其中一些为您提供了不保存这些字节的选项,这通常是最好的选择。要删除这些字节,请尝试使用 Notepad++ 之类的编辑器,它可以让您选择不保存这些字符。我不得不将sql文件的所有内容复制到新文件中,它创建了没有BOM的文件并且错误消失了。
  • 可以重新提出问题吗?这既可重现又非常有用。

标签: sql oracle unix sqlplus


【解决方案1】:

默认情况下,SQL*Plus 不喜欢空行。但是我们可以很容易地配置我们的 SQL*Plus 环境来忽略它们:

SQL>  set sqlblanklines on

我们也可以将设置放在 glogin.sql 文件中(假设我们可以编辑它,但并非总是如此)。

请注意,此参数在旧版本的客户端中不起作用。

【讨论】:

    【解决方案2】:

    如 cmets 中所述,此问题可能是由 UTF-8 BOM(字节顺序标记)编码引起的。将文件内容复制到 Notepad++ 即可轻松解决。

    在我们的例子中,在 Azure DevOps 中编辑 sql 文件时,编码从 UTF-8 更改为 UTF-8 BOM。

    说明: 某些编辑器会在您以 UTF-8 格式保存文件时自动添加这些字节。其中一些为您提供了不保存这些字节的选项,这通常是最好的选择。要删除这些字节,请尝试使用 Notepad++ 之类的编辑器,它可以让您选择不保存这些字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2021-05-22
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多