【问题标题】:IBM DB2 // Create Alias in Stored ProcedureIBM DB2 // 在存储过程中创建别名
【发布时间】:2015-07-30 08:38:54
【问题描述】:

我使用最新版本的 IBM 的 DB2 Express-C。在我的一个存储过程中,我试图为现有表添加一个 CREATE ALIAS - 语句。

“Unexpected token”是存储过程执行create语句后的错误信息。

所以我的问题: 我阅读了CREATE ALIAS 的文档。对特殊上下文没有限制。有人在存储过程中成功实现了 CREATE ALIAS 吗?

这是从我的 DBProc 中截取的:

   DECLARE SQL          varchar(450);

   SET T1 = 'M2F.m2f_k' || i_TableNr;
   SET T2 = 'M2F.m2f_k' || i_TableNr || '_zuodoc z' ;

   -- CREATE ALIAS M2F.Kxx FOR T1;
   CREATE ALIAS M2F.Kxx FOR M2F.m2f_k11;

   for_loop: 
   FOR rs AS c1 CURSOR FOR

谢谢! 奥利弗

【问题讨论】:

  • 这个小测试存储过程也不能正常工作:创建过程 M2F.test() 语言 sql BEGIN ATOMIC CREATE OR REPLACE ALIAS M2F.Kxx FOR TABLE M2F.m2f_k11;结束
  • 如果您使用 DB2 for LUW,为什么要参考 DB2 for z/OS 的文档?
  • 对不起。这是正确的链接:www-01.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/….

标签: sql stored-procedures db2


【解决方案1】:

大多数 DDL 语句,包括CREATE ALIAS,必须在存储过程中动态执行:

EXECUTE IMMEDIATE 'CREATE ALIAS M2F.Kxx FOR ' || T1;

这是一个link to the manuals最新版本的 DB2 for LUW

【讨论】:

  • 嘿mustaccio,这是有效的。我已经在其他存储过程中使用了 EXECUTE IMMEDIATE,但在这种情况下从未想过:-(
猜你喜欢
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多