【问题标题】:What is the purpose of the #SET TERMINATOR statement#SET TERMINATOR 语句的目的是什么
【发布时间】:2021-10-31 01:51:37
【问题描述】:

专门用于 SQL 存储过程。我是否应该在每个存储过程的开头包含它,例如

--#SET TERMINATOR @
CREATE PROCEDURE Name
LANGUAGE SQL
BEGIN
SELECT * FROM Table
END
@

【问题讨论】:

    标签: sql db2


    【解决方案1】:

    这不是语句,而是更改语句终止符的指令。
    如果您要运行的语句包含 compound statement(与 BEGIN ... END)包含由 ; 分隔的其他“简单”语句,则必须使用不同于默认语句终止符 (;) 的另一个语句终止符。复合语句中的语句分隔符无法更改,因此您必须帮助 DB2 命令行处理器了解您的整个“复杂”语句的结束位置。

    顺便说一句,您的陈述包含许多错误。 BEGIN ... END 块内的每条语句(包括最后一条)都必须用; 分隔,并且不能在例程中“SELECT to nowhere”。

    【讨论】:

    • 谢谢马克!这种解释肯定会澄清很多事情,并帮助我了解我需要做什么。
    • @LaidBackLuck 如果您发现有用的答案,您应该accept it
    • @mustaccio 感谢您指出这一点!这里很新,所以仍在尝试解决问题。
    猜你喜欢
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2023-03-17
    相关资源
    最近更新 更多