为什么用C# 动态生成的触发器编译通不过,同样的代码,放到 PL/SQL里可以编译通过,
很简单的触发器,测试一下CREATE OR REPLACE TRIGGER "TRG_T_QUERY_CONDITION_DEF" BEFORE
INSERT ON "T_QUERY_CONDITION_DEF" FOR EACH ROW
BEGIN
NULL;
END;
但第一次编辑的时候显示 这个错误
TRIGGER ZJJCJG.TRG_T_QUERY_CONDITION_DEF 编译错误错误:PLS-00103: 出现符号 ""在需要下列之一时:
begin case declare exit for
goto if loop mod null pragma raise return select update while
with <an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
行:3
文本:BEGIN
很简单的触发器,测试一下CREATE OR REPLACE TRIGGER "TRG_T_QUERY_CONDITION_DEF" BEFORE
INSERT ON "T_QUERY_CONDITION_DEF" FOR EACH ROW
BEGIN
NULL;
END;
但第一次编辑的时候显示 这个错误
TRIGGER ZJJCJG.TRG_T_QUERY_CONDITION_DEF 编译错误错误:PLS-00103: 出现符号 ""在需要下列之一时:
begin case declare exit for
goto if loop mod null pragma raise return select update while
with <an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
行:3
文本:BEGIN
sb = new StringBuilder();
string newTirger = ("TRG_" + TableName).ToUpper();
sb.AppendLine("CREATE OR REPLACE TRIGGER \"" + newTirger + "\" BEFORE");
sb.AppendLine("INSERT ON \"" + TableName + "\" FOR EACH ROW");
sb.AppendLine("BEGIN");
sb.AppendLine("NULL;");
sb.AppendLine("END;");
Db.dataSourceOracle.ExecuteNonQuery(sb.ToString());