【问题标题】:Failure 3706 Syntax error: Invalid SQL statement失败 3706 语法错误:无效的 SQL 语句
【发布时间】:2021-02-17 01:09:57
【问题描述】:
create procedure InsertEmp
(
 IN in_eno INTEGER,
 IN in_fname VARCHAR(30),
 IN in_lanme VARCHAR(30),
 IN in_DOB DATE,
 IN in_JoinedDate DATE,
 IN in_DepartmentNo BYTEINT
)
BEGIN
SELECT * FROM EMPLOYEE;
END;

通过面向unix服务器执行上述过程时

失败 3706 语法错误:无效的 SQL 语句。

【问题讨论】:

  • 如何在 Unix 服务器上运行它,BTEQ?然后你需要将源代码放在一个文件中并.COMPILE它。除此之外,Select 也会失败。
  • @dnoeth 我应该输入 SELECT * FROM EMPLOYEE;在一个文件中,我应该将它触发为 .COMPILE FILE 对吗?
  • 不,SP 的完整源代码必须在该文件中。

标签: stored-procedures teradata


【解决方案1】:

您必须在发布的过程中定义一个 INTO 子句,以便在任何环境(BTEQ、SQL*Assistant 等)中编译。

大概是这样的:

create table EMPLOYEE (eno INTEGER);

replace procedure InsertEmp
(
 IN in_eno INTEGER
 )
BEGIN
DECLARE l_eno INTEGER;
SELECT top 1 eno INTO l_eno FROM EMPLOYEE;
END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2017-06-14
    • 2014-06-08
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多