Informix SQL 11.5 创建没有临时表的存储过程

Posted

技术标签:

【中文标题】Informix SQL 11.5 创建没有临时表的存储过程【英文标题】:Informix SQL 11.5 creating stored procedure without temporary table 【发布时间】:2020-09-09 12:16:39 【问题描述】:

我没有创建临时表那样的数据库权限,我可以编写和执行存储过程吗?

这段代码:

 CREATE PROCEDURE "informix".proc()
 select * from table1;
 end procedure

导致此错误:

SELECT 语句需要 INTO TEMP 表。

还有这段代码:

 CREATE PROCEDURE "informix".proc()
 select * from table1
 into temp_table1;
 end procedure

导致此错误:

只有 DBA 可以为其他用户创建、删除、授予或撤销。

谁能帮忙?

【问题讨论】:

请注意,Informix 11.50 已经停止服务几年了,11.70 将在 2020 年 9 月结束服务。您应该打算升级到版本 14.10。 【参考方案1】:

“只有 DBA 可以创建....”错误是因为您正在尝试创建属于“informix”的过程并且您的用户缺少 DBA 权限。基本上,您不能创建属于其他人的对象。如果您拥有 RESOURCE 权限,您应该能够创建属于您的 SPL。 在 (https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_0147.htm) 上阅读它描述了不同的数据库权限以及您可以做什么。

【讨论】:

以上是关于Informix SQL 11.5 创建没有临时表的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

Informix 11.5 SQL 语句性能监控方法及实现

Informix SQL 11.5 — 在 while 循环中访问变量

Informix SQL 11.5 将查询结果存储在具有动态名称的文件中

使用 prepare 语句在 informix 4gl 中创建临时表

informix 中update 前2条记录的 SQL语句

Informix - 如果存在则删除临时表