在informix的存储过程里面,怎么写动态sql

作者&投稿:伏歪 (若有异议请与网页底部的电邮联系)
怎么在informix中创建存储过程?~

1. 新建存储过程
create procedure testpro(
col1 varchar(10)
, col2 decimal(20)
) returning decimal(10);
define v_count varchar(10);

select count(*) into v_count from systables;
return v_count;
end procedure;
上例为一个简单的存储过程。
在informix 中没有出参的写法,11.7版本之后才有了出参 ,调用的方法是需要新建一个存储过程传参。因为我的版本比较低,不能执行就不做具体解释了。
2. 存储过程中的循环
for i in (1 to 10 step 1)
end for;
foreach

REATE PROCEDURE create_tab (table_name CHAR(128), column_list CHAR(512))
DEFINE l_crtstmt CHAR(1024);
LET l_crtstmt = "CREATE TABLE " || table_name ||"("|| column_list || " )"; --动态语句,存放到一个变量中
EXECUTE IMMEDIATE l_crtstmt; --动态执行SQL
END PROCEDURE;


看看行不行,不行再问我

REATE PROCEDURE create_tab (table_name CHAR(128), column_list CHAR(512))
DEFINE l_crtstmt CHAR(1024);
LET l_crtstmt = "CREATE TABLE " || table_name ||"("|| column_list || " )"; --动态语句,存放到一个变量中
EXECUTE IMMEDIATE l_crtstmt; --动态执行SQL
END PROCEDURE;


informix 11 如何查看已安装组件
informix组件有3个:绑定的IBM informix产品、informix connect、client SDK,可以查看$INFORMIXDIR下tmp目录的log日志、connlog、csdklog

Informix 几种数据去重的方法
然后将数据通过导入工具导入该表,access将自动将插入不成功的数据过滤,对于按照索引重复的数据只能插入一条,轻易达到去重目的。此法适用于小数据量,不想写程序,一次性行为。对于大数据量的可以通过"大功率"的数据库系统采用类似的方法进行处理,如使用informix的dbload工具,忽略导入错误进行装入。二.unix...

informix 怎么查看数据库的日志模式
onmonitor 选择Logical-Logs ~ Databases 就可以看到

informix上如何执行*.sql脚本
informix上执行sql脚本,分命令行方式和dbaccess界面方式:命令行方式:dbaccess db_name xx.sql 这里的数据库名不可省或dbaccess [db_name] < xx.sql输入重定向方式时,[]表示可省略。当xx.sql脚本中有数据库选择语句(database db_name;)时,可以不加数据库名。dbaccess界面方式:运行dbaccess...

informix数据库对表进行中优和高优有什么区别
update statistics三种级别:1、LOW:缺省为LOW,只更新表、字段、记录数、页数及索引等的最基本信息,对字段的分布情况不做统计。。只有systables、syscolumns、sysindexes内的内容改变,不影响sysdistrib。为了提高效率,一般对非索引字段执行LOW操作 2、MEDIUM:除了更新表、字段、记录数、页数及索引等的最...

Informix如何建带有事务的数据库
只有日志模式的数据库才能进行事务处理 创建时指定数据库日志模式:CREATE DATABASE database-name [IN DBspace-name][WITH {[BUFFERED] LOG | LOG MODE ANSI}]其中WITH LOG建立非缓冲日志模式数据库;WITH BUFFERED LOG为建立缓冲日志模式数据库;没有WITH LOG时建立的是无日志数据库,此时无法进行事务...

informix行锁会锁表吗
informix行锁会锁表。容易发生死锁的几种情况如下:1>不同的存储过程、触发器、动态SQL语句段按照不同的顺序同时访问多张表; 2>在交换期间添加记录频繁的表,但在该表上使用了非群集索引(non-clustered);3>表中的记录少,且单条记录较短,被访问的频率较高; 4>整张表被访问的频率高(如代码...

informix-4Gl 是什么
一种所谓的第四代的开发语言。不过个人认为有以下优点:(1)语法类似store procedure,可以非常方便地在程序中直接嵌入SQL(相对来说,ESQL\/C就需要一个“预编译”)(2)可以很方便地进行调试(store procedure非常难调试)(3)相对于C、Java等语言,语法实在有待加强,例如应该添加类似C的typedef等。

怎样用Informix数据库调优
下面以关系数据库系统Informix为例,介绍改善用户查询计划的方法。1.合理使用索引索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段...

如何实现Informix的ontape零级备份自动完成
ontape是informix数据库的简单易用的备份工具,但是它必须交互进行,对数据库的日常维护有一定的限制,比如,我们想在晚上进行备份,而不是在白天工作的时间。下面我就简单示例,实现ontape的自动备份,这样我们就可以编写一个脚本,让操作系统在系统不忙时自动调用。假设:1 ) $ONCONFIG 中参数 TAPE...

云岩区15217608586: 在informix的存储过程里面,怎么写动态sql -
尔阅隆舒: REATE PROCEDURE create_tab (table_name CHAR(128), column_list CHAR(512)) DEFINE l_crtstmt CHAR(1024); LET l_crtstmt = "CREATE TABLE " || table_name ||"("|| column_list || " )"; --动态语句,存放到一个变量中 EXECUTE IMMEDIATE l_crtstmt; --动态执行SQL END PROCEDURE;

云岩区15217608586: informix 存储过程中给变量赋值 -
尔阅隆舒: select code into v_val from table; 就可以了,注意查询应该只有一行返回值

云岩区15217608586: informix中用sql或者存储过程取上一个工作日的日期(就是除星期六、星期天,国家法定节日外) -
尔阅隆舒: 在informix的存储过程中,截取字符串和在informix的sql里一样,都是用sting[beg,end]这种方式,比如str=abcdefg,想取第4和第5个字符,就用str[4,5],得到“de”. informix存储过程中取当天日期用TODAY,在别的文章里说这是个函数,我说还不如算个变量,因为函数的引用是后面要加括号的,比如getage(id),而这个是不能带括号的,直接用TODAY:date mydate;mydate=TODAY;

云岩区15217608586: 怎么在informix中创建存储过程? -
尔阅隆舒: 1. 新建存储过程 create procedure testpro( col1 varchar(10) , col2 decimal(20)) returning decimal(10); define v_count varchar(10); select count(*) into v_count from systables; return v_count; end procedure; 上例为一个简单的存储过程.在informix ...

云岩区15217608586: 请问如何在informix的存储过程中加入循环语句? -
尔阅隆舒: create procedure inserttest(numrows int) define i int; let i=0; while i< numrows insert into test values(i,i+1,i*3); let i=i+1; delete test where a=i; end while end procedure; 适当的地方你改一下吧

云岩区15217608586: 如何运行 informix 存储过程 -
尔阅隆舒: 标准SQL语言,通过数据库访问语言直接运行:execute procedure proc_name(in_para_list); 在存储过程中调用;call proc_name(in_para_list);

云岩区15217608586: informix 存储过程中 加入unload 语句报语法错误,请问是怎么回事呢? -
尔阅隆舒: 么是循环呢?它的格式是:unload to 文件名.txt select * from 数据库名

云岩区15217608586: 在存储过程中怎样可以获得查询出来的行数? -
尔阅隆舒: create proc Myrproc @i int output as select @i=count(*) frome table where name='fsfd' 调用:create @outi int exec Myrproc @i=@outi output select @outi

云岩区15217608586: informix 如何在当前执行存储过程中返回此存储过程名 -
尔阅隆舒: create procedure 存储过程名() Returning varchar(255);.....return '存储过程名'; end procedure;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网