【发布时间】:2018-12-21 16:08:45
【问题描述】:
CREATE OR REPLACE PROCEDURE "SECURITY"."UPDATE_REFS_P"
(
in pIdProcessExec bigint,
in pProcessDate DATE,
in pDebugMode integer default 0,
in pCallingInterface varchar(200) default 'Manual',
out pCheckResult integer
)
错误是:
Msg 156, Level 15, State 1, Line 1 关键字附近的语法错误 '或'。
当我删除“OR REPLACE”时,错误是
消息 156,级别 15,状态 1,过程 UPDATE_REFS_P,第 3 行 [批处理 Start Line 0] 关键字“in”附近的语法不正确。
【问题讨论】:
-
那不是 T-SQL——SQL Server 使用的 SQL 方言,它完全来自不同的数据库。你需要重写它。
-
SQL Server 的语法是
CREATE OR ALTER,但是,就像@AlexK。已经指出,剩下的仍然不是SQL Server。 SQL Server 使用方括号 ([]) 引用对象,而不是双引号 ("),并且变量/参数以 at 符号 (@) 开头,并且不是带有in的声明。我不知道那是什么语言。 -
那是甲骨文..
-
@That was Oracle.@ Msg 156 this ms sql error message
-
虽然这部分过程定义很容易通过一些调整来重写,但当涉及到存储过程中的大多数(命令式、过程式)语句时,Oracle 和 SQL Server 是非常不同的。如果这不是编写新程序的练习,而是尝试移植现有程序,那么您可能需要精通这两种数据库系统的人。
标签: sql-server