当前位置:文档之家› INFORMIX数据库函数

INFORMIX数据库函数

INFORMIX数据库函数
INFORMIX数据库函数

一、内部函数

1、内部合计函数

1)COUNT(*)返回行数

2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数

3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;

4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和

5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值

6)AVG(DISTINCT COLNAME)返回指定列中唯一值的平均值

7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值

8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值

2、日期与时间函数

1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号

2)MONTH(DATE/DATETIME EXPRESSION)返回指定

表达式中的月份

3)YEAR(DATE/DATETIME EXPRESSION)返回指定表达式中的年份

4)WEEKDAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当周星期几

5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值

6)TODAY 返回当前日期的日期值

7)CURRENT[FIRST TO LAST] 返回当前日期的日期时间值

8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数

9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值

10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值

11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值

12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回经过调整的日期或日期时间值

To_char函数将datetime和date值转化为字符值。To_date函数将字符值转化为datetime类型的值。例

to_date(“1978-10-07 10:00”,”%Y-%m-%d %H:%M) 例子1、和UNITS合用,指定日期或时间单位(year,month,day,hour,minute,seond,fraction):

let tmp_date = today + 3 UNITS day

例子2、let tmp_date = MDY(10,30,2002) -- 2002-10-30 例子3、let tmp_date = today + interval(7) day to day --当前时间加上7天;

注:该功能与1相似;

例子4、EXTEND转换日期或日期时间值

let tmp_inthour = extend(datetime1,hour to hour)

3、代数函数

1)ABS(COLNAME/EXPRESSION):取绝对值

2)MOD(COLNAME/EXPRESSION,DIVISOR)返回除以除数后的模(余数)

3)POW(COLNAME/EXPRESSION,EXPONENT)返回一个值的指数冥

例子:let tmp_float = pow(2,3) --8.00000000

4)ROOT(COLNAME/EXPRESSION,[INDEX])返回指定列或表达式的根值

5)SQRT(COLNAME/EXPRESSION)返回指定列或表达式的平方根值

6)ROUND(COLNAME/EXPRESSION,[FACTOR])返回指定列或表达式的圆整化值

7)TRUNC(COLNAME/EXPRESSION,[FACTOR])返回指定列或表达式的截尾值

说明:上两者中FACTOR指定小数位数,若不指定,则为0;若为负数,则整化到小数点左边;

注:ROUND是在指定位上进行4舍5入;TRUNC是在指定位上直接截断;

let tmp_float = round(4.555,2) --4.56

let tmp_float = trunc(4.555,2) --4.55

4、指数与对数函数

1)EXP(COLNAME/EXPRESSION)返回指定列或表达式的指数值

2)LOGN(COLNAME/EXPRESSION)返回指定列或表达式的自然对数值

3)LOG10(COLNAME/EXPRESSION)返回指定列或表达式的底数位10的对数值

5、三角函数

1)COS(RADIAN EXPRESSION)返回指定弧度表达式的余弦值

2)SIN(RADIAN EXPRESSION)正弦

3)TAN(RADIAN EXPRESSION)正切

4)ACOS(RADIAN EXPRESSION)反余弦

5)ASIN(RADIAN EXPRESSION)反正弦

6)ATAN(RADIAN EXPRESSION)反正切

7)ATAN2(X,Y)返回坐标(X,Y)的极坐标角度组件

6、统计函数

1)RANGE(COLNAME)返回指定列的最大值与最小值之差= MAX(COLNAME)-MIN(COLNAME)

2)VARIANCE(COLNAME)返回指定列的样本方差;3)STDEV(COLNAME)返回指定列的标准偏差;

7、其他函数

1)USER 返回当前用户名

2)HEX(COLNAME/EXPRESSION)返回指定列或表达式的十六进制值

3)LENGTH(COLNAME/EXPRESSION)返回指定字符列

或表达式的长度

4)TRIM(COLNAME/EXPRESSION)删除指定列或表达式前后的字符

5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在一起的字符;

8、基数函数:

1)cardinality(仅适用IDS)函数对集合包含的元素数目计数。

智能大对象函数,(仅适用与IDS)

filetoblob( ),将文件复制到BLOB列中

filetoclob( ),将文件复制到CLOB列中

locopy( ),将BLOB或CLOB类型的数据复制到另一个BLOB或CLOB列中

lotofile( ),将BLOB或CLOB复制到文件中

9、字符串处理函数:

lower,将字符串中每个大写字母转换为小写字母upper,将字符串中每个小写字母转换为大写字母initcap,将字符串中每个词的首写字母转换成大写replace,将字符串中的某一组字符转换成其他字符,例replace(col,”each”,”eve”)

substr,返回字符串中的某一部分,例substr(col,1,2) substring,返回字符串中的某一部分,例

substring(col,from 1 to 4)

lpad,使用lpad函数已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。

举例:字段col 为char(15)类型,select lpad(col,21,”_”) from tab_name则显示为在col前加上六个_。Rpad,使用rpad函数已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。

举例:字段col为char(15)类型,select rpad(col,21,”_”) from tab_name则显示为在col后边加上六个_。

10、其他函数:

hex,返回表达式的十六进制数

round,返回表达式的四舍五入值

trunc,返回表达式的截断值

length,计算表达式的长度

user,返回执行查询的用户的用户名(登陆帐户名)today,返回当前系统日期

dbservername,返回数据库服务器的名称,同sitename dbinfo,返回数据库的相关信息

decode,函数来将一个具有一个值的表达式转换为另一个值

decode(test,a,a_value,b,b_value,c,c_value……),decode 函数不支持TEXT和BYTE类型。

Nvl,来将求值为空的表达式转化为另一个想要指定的值。

另外还可以在select语句中使用存储过程,如select spl($test) from tab_name

二、IDS内部函数

1、DBSERVERNAME 返回数据库服务器名let tmp_char=DBSERVERNAME

2、SITENAME 返回数据库服务器名let tmp_char=SITENAME

说明:两者功能相同;

3、DBINFO(‘SPECIAL_KEYWORD') 返回只关键字值

例子1:返回数据中每个表的DBSPACE名称

select dbinfo('dbspace',partnum),tabname from systables

where tabid>99 and tabtype='T' (OK)

例子2:返回任何表中插入的最后一个SERIAL值select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1

例子3:返回最后一个SELECT,INSERT,UPDATE,DELETE

或EXECUTE PROCEDURE语句处理的行数;

select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;

三、其它

本函數庫共有38 個函數

目前支持的Informix 版本為ODS 7.x、SE 7.x 與Universal Server (IUS) 9.x 三種。在ODS 7.x 的版本中,完全支持所有的資料類型,而在IUS 9.x 中,不支持SLOB 與CLOB 二種類型。

要在Web Server 上安裝Informix Client 端,在編譯PHP 之前(configure 之前),要先設好IFX_LIBDIR、IFX_LIBS 及IFX_INCDIR 三種環境變量,若是9.x 版尚要配置HAVE_IFX_IUS 環境變量。同時在配置時要加入--with_informix=yes 的選項。

ifx_connect: 打開Informix 服務器連接。

ifx_pconnect: 打開Informix 服務器持續連接。

ifx_close: 關閉Informix 服務器連接。

ifx_query: 送出一個query 字符串。

ifx_prepare: 准備query 字符串。

ifx_do: 執行已准備query 字符串。

ifx_error: 取得Informix 最后的錯誤。

ifx_errormsg: 取得Informix 最后錯誤信息。

ifx_affected_rows: 得到Informix 最后操作影響的列數目。

ifx_getsqlca: 取得query 后的sqlca信息。

ifx_fetch_row: 返回單列的各字段。

ifx_htmltbl_result: 將query 返回資料轉成HTML 表格。

ifx_fieldtypes: 列出Informix 的SQL 字段。

ifx_fieldproperties: 列出Informix 的SQL 字段屬性。ifx_num_fields: 取得返回字段的數目。

ifx_num_rows: 取得返回列的數目。

ifx_free_result: 釋放返回占用內存。

ifx_create_char: 建立字符類。

ifx_free_char: 刪除字符類。

ifx_update_char: 更改字符類。

ifx_get_char: 取得字符類。

ifx_create_blob: 建立長位類。

ifx_copy_blob: 復制長位類。

ifx_free_blob: 刪除長位類。

ifx_get_blob: 取得長位類。

ifx_update_blob: 更改長位類。

ifx_blobinfile_mode: 配置長位類模式。

ifx_textasvarchar: 配置文字模式默認值。

ifx_byteasvarchar: 配置位組模式默認值。ifx_nullformat: 配置空字符模式默認值。ifxus_create_slob: 建立slob 類。

ifx_free_slob: 刪除slob 類。

ifxus_close_slob: 刪除slob 類。

ifxus_open_slob: 打開slob 類。

ifxus_tell_slob: 返回目前文件或找尋位置。ifxus_seek_slob: 配置目前文件或找尋位置。ifxus_read_slob: 讀取指定數目的slob 類。ifxus_write_slob: 將字符串寫入slob 類中

informix学习总结

i n f o r m i x学习总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

INFORMIX的学习第一章 ESQL/C的数据类型 数据类型 SQL与C数据类型的对应 简单类型 SQL C CHAR(n) char(n+1) CHARCTER(n) char * SMALLINT short int INTERGER INT long int SMALLFLOAT REAL float FLOAT DOUBLE PRECISIONdouble SERIAL long int DATE long int 复杂类型 SQL C DECIMAL DEC NUMERIC dec_t or struct decimal MONEY dec_t or struct decimal DATETIME dtime_t or struct dtime INREVER intrvl_t or struct intrvl VARCHAR varchar or string 数据类型转换 转换类型转换后 FLOAT DECIMAL(16) SMALLFLOAT DECIMAL(8) INTERGER DECIMAL(10,0)

SAMLLINT DECIMAL(5,0) 数据类型的转换函数 有关CHAR类型的函数 1、以空值结尾的串的操作函数 rdownshift(char *s) 把一个字符串中的所有字母转换成小写形式。 rupshift(char *s) 把一个字符串中的所有字母转换成大写形式。 stcat(char *s, char *dest) 把一个字符串同另一个字符串相连接。 stcmpr(char *s1, char *s2) 比较两个字符串。 stcopy(char *from, char *to) 把一个字符串拷贝到另一个字符串。 stleng(char *string) 统计字符串的长度。 2、定长串的操作函数 bycmpr(char byte1, byte2, rpt len) 比较两组连续的字节内存块。 bycopy(char *from, char *to, int len) 把一块内存的内容拷贝到另一块内存。 byfill(char *to, int len, char ch) 用字符填充指定的内存块。 byleng(char from, int count) 统计有效字符的数目。有效字符是指字符串去除了末尾空格所剩的字符。 3、字符串操作函数 ldchar(char *from, int num, char *to) 拷贝定长串到空值结尾的串。 stchar(char *from, char *to, int num) 拷贝空值结尾的串到定长串。 4、字符串函数简单数值转换 rstod(char *str, double *dblval) 把以空值结束的字符串转换成C的double型 rstoi(char *str, int *intval) 把以空值结束的字符串转换成C的int类型。 rstol(char *str, long *lngval) 把以空值结束的字符串转换成C的long类型。

informix数据库SQL学习

简单的SELECT语句 SELECT语句是最重要也是最复杂的SQL语句,它和insert update和delete 语句一起用于数据操作,主要用于: ●从数据库中检索数据 ●作为INSERT语句的一部分产生新的行 ●作为UPDATE语句的一部分更新信息 1.S ELETE语句的简要介绍 ●构成: SELECT 子句指定要查询的表 FROM 子句指定要查询的列 WHERE子句选择特定的列或创建一个新的连接条件 ORDER BY子句改变数据产生的次序 INTO TEMP子句把结果以表的形式存放起来,供以后使用 其中SELECT、FORM子句是必选的。 ●权限 查询数据库必须对该数据库具有connect权限以及对表具有SELECT权限,这些权限通常作为默认值赋给用户。与数据库的操作权限有关的grant 和revoke语句将在后面讲到。 ●关系操作 选择:在表中满足特定条件的行的水平子集。这一类型的SELECT 子句返回表中的一部分行的所有列。选择是通过SELECT语句的WHERE子句来实现的。 例:SELECT * FROM custom WHERE state=”NJ” 显示结果如下: customer_num 107 fname Charles lname Ream company Athletic Supplies addressl 41 Jordan Avenue address2 city Palo Alto state CA zipcode 94304 phone 415-356-9876

投影:在表中一些列的垂直子集,子集包含了表中这些列的所有行。这样的SELECT 语句返回表中所有行的一些列。投影是通过在SELECT语句中的SELECT子句的选 项来实现的。 例:SELECT UNIQUE city, state,zipcode FROM customer 查询结果包含了与customer 表中的相同数目的行,但仅投影了列的一个子集 显示结果如下: city state zipcode Bartlesville OK 74006 Blue Island NY 60406 Brighton MA 02135 Cheey Hill NJ 08002 Denver CO 80219 Jacksonville FL 32256 Los Altos CA 94022 Menlo Park CA 94025 Moutain View CA 94040 Moutain View CA 94063 Oakland CA 94609 Palo Alto CA 94303 Palo Alto CA 94304 Phoenix AZ 85008 SELECT语句在大多数情况下同时使用选择和投影,查询返回表中的一些行和一些列。 例:SELECT UNIQUE city,state,zipcode FROM customer WHERE state=”NJ” 显示结果如下: city state zipcode Cherry Hill NJ 08002 Princeton NJ 08540 连续:将两个或多个表通过一个或多个相同的列联系起来成为一个新的结果表

Informix数据库dbaccess工具执行SQL语句操作说明

【文档名称】:Informix数据库dbaccess工具执行SQL语句操作说明 【背景说明】 部分工程经常要对数据库进行操作,而各省客服及驻点同事对相关操作不熟悉,现整理一份实用的操作说明。 【适用范围】 适用设备:Informix-9.4,Informix-11.5 【文档正文】 1)用informix账户登录操作系统,在开始菜单中打开“ol_实例名”。 2)直接输入dbaccess并回车。选择Connection,然后选择Connect。

3)选择数据库实例。一般只有一个,直接回车即可。 4)输入用户名informix,回车。

5)输入数据库密码,回车。 6)下方提示已连接。 7)直接按回车,然后选择Exit回车。 8)选择第一个Query-language回车。

9)选择Use-editor回车。 10)直接回车,默认用记事本打开编辑器。 11)将SQL语句粘贴到记事本。 12)关闭,选择保存,然后选择Run,回车,查看返回结果是否成功。

常用SQL语句: 1、导出某张表。(需注意当前用户对该目录是否有写入权限,否则会导出失败)unload to 'C:\_analarmtype' select * from _analarmtype; 导出_analarmtype表并保存到C盘根目录。 2、删除某张表。 delete from _analarmtype; 3、导入某张表。 load from 'C:\ _analarmtype ' insert into _analarmtype; 4、查询某张表的条目数。 select count(*) from analarmhis; 查询历史告警条目数 select count(*) from ancurrentalarm; 查询当前告警条目数 DBACCESS基本讲解. doc

InformixDBACCESS讲解

一、DB-ACCESS应用工具的说明 使用DB-ACCESS可以方便的实现下面的功能: 1.调试、执行那些很少执行或只需要执行一次的查询; 2.方便的连接到一个或多个数据库服务器,在数据库服务器和外部文件之间交换数据, 或显示数据库的相关信息; 3.显示系统数据表和数据模式的信息; 4.作为一个方便的SQL语言的学习环境; 5.查看应用程序的执行结果,作为应用程序的测试工具; A.进入DBACCESS→$DBACCESS [DATABASE]若后方直接输入 DATABASENAME则一并开启之; 例:DBACCESS STORES@XYZ或DBACCESS //XYZ/STORES 打开XYZ数据库服务器上的STORES数据库,若选择当前数据库服务器上的 STORES数据库,则省略@XYZ(即:DBACCESS STORES); B.主功能选择 Query-Language→提供管理者一个SQLeditor,可自行输入SQL指令并执行 Connection→建立或断开与数据库服务器的连接 Database→提供管理者管理数据库的建立、异动与删除 Table→提供管理者管理数据表的建立、异动与删除 Session→描述数据库服务库和主机 Exit→退出DBACCESS C.Query-Language功能选择 New→清除Editor画面,输入SQL指令 若输入多条SQL语句,请用“;”将SQL语句分割开 Run→执行Editor中所输入之SQL指令 Modify→修改Editor中所输入之SQL指令 Use-editor→使用DBEDIT所指定的Editor当编辑器 Output→将执行结果产生至打印机或档案 Choose→选择已建立好的SQL档案复制到Editor中供使用 Save→Editor中所输入的SQL指令存至Editor中供以后参考使用 用户要保存的目标文件名最大长度为10个字符,DB-ACCESS自动为其添加 扩展名“.sql” Info→查询DATABASE与TABLE的资讯 Columns→显示指定表的列的信息,包括数据类型和是否允许为空值 Indexes→显示指定表的索引的名字、拥有者和类型(唯一索引和普通索引) Privileges→列出具有表级插入、删除等权限的用户列表 References→列出对指定表中的列具有关联权限的用户 Status→列出表的状态信息,字段数、记录数、行的大小、创建日期 Constraints→关联、主码、唯一限制和列的默认值 Triggers→触发器的相关信息 Table→选择表 Fragments→表的空间分配策略

错误代码中文解释转3

-101 ISAM错误:文件未打开。 ISAM处理器被要求使用一个未打开的文件(表)。对C-ISAM程序,程序试图在调用isopen打开文件前使用该文件,或是试图写一个只读方式打开的文件。如果错误再次 出现,请参考INFORMIX-Online的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -102 ISAM错误: 不合法的ISAM函数参数。 一个传递给C-ISAM函数的参数值超出了可接受的范围。对C-ISAM程序,检查这个函数调用中使用的参数,并与该函数的文档比较。如果错误再次出现,请参考INFORMIX- Online的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -103 ISAM错误: 不合法的键描述符(部分过多或是太长)。 ISAM处理器被给予了一个无效的键描述符。对C-ISAM程序,检查键描述符。每个键描述符最多可以有8个部分和120个字符。如果错误再次出现,请参考INFORMIX-Online 的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -104 ISAM错误: 打开文件过多。 ISAM处理器已经到达了打开文件数的极限。对C-ISAM程序,检查并改变程序逻辑使得它同时打开较少的文件。使用isclose来关闭不需要的文件。对SQL产品,这个查询过于复杂;它同时使用了过多的表。分步执行查询并使用临时表。 -105 ISAM错误: 坏的ISAM文件格式。 一个ISAM文件(表或索引)的内容已被损坏。对C-ISAM,如果已使用了事务日志,你可以用isrecover程序来恢复该文件。否则,重新建立或是从备份上恢复该文件。对SQL 产品,使用bcheck或secheck实用工具来获取有关此问题的进一步信息,可能的话改正错误(在INFORMIX-OnLine数据库服务器中使用tbcheck或是在INFORMIX-OnLine 动态服务器中使用oncheck)。如果实用工具不能恢复表或索引,你必须重新建立或 恢复它。 -106 ISAM错误: 非排它存取。 ISAM处理器被要求增加或取消一个索引,但它并没有排它存取权。对C-ISAM程序,在做这个操作之前文件必须以排它存取方式打开。检查程序逻辑,确保在打开文件时把ISEXCLLOCK标志传递给了isopen。对SQL产品,在要求对表的排它锁定时,INFORMIX-OnLine 动态服务器和INFORMIX-SE数据库服务器中可能会返回这个错误。 例如,当第一个用户锁定了表后,第二个用户又试图变更表时,就会出现这个错误。

informix数据库导入导出

所谓中间库,就是说把从各个业务系统卸载下来的数据(通常是文本),装载到这个中间库Informix中,然后再然过ETL过程操作,最后装载到数据仓库中。 之所以要采用一个中间库,主要是为了使数据容易维护,因为从各业务系统卸载下来的数据(通常是文本),文本文件是比较难于维护的。还有解决一些乱码问题,Informix这里可以把乱码的数据去除掉。最后一个就是解决文本文件取定长数据的问题,很容易出错,不过这个具体我还是不是很明白。 其实也可以直接使用文本文件,就是说不经过这个中间库,然后需要解决上面说的三个问题。 Informix数据导出,也叫做卸数:unload to fileName.txt select * from tableName 语法比较简单,unload to 后面接导出的文本文件名称,select后面接你所要导出的数据的条件。 Informix数据导入,也叫做装数:load fileName.txt insert into tableName load后面接需要导入的文本文件名称,后面insert into后面接数据表名。 备份数据库结构 dbschema -d database > database.sql -d表示导出整个数据库的表结构, 备份表结构 dbschema -t tablename >tablename.sql dbschema –d database –t tablename > tablename.txt -t表示导出某一个数据表的表结构。 informix数据库表的导入和导出 使用dbaccess工具,选择相应数据库,然后执行SQL语句 导出: unload to table1.txt select * from table1; 命令含义为:将table1表格中的数据导入到table1.txt中,此处文件名可以带路径,否则就会被导出到当前目录。 导入: load from table1.txt insert into table1; 命令含义: 将当前目录下的table1.txt中的内容插入到表格table1中。 对于使用unload导出的文件,可以通过编写命令文件的方式,批量的插入到数据库中。例如导出三个文件table1.txt,table2.txt,table3.txt

AIX系统维护命令大全

IBM小型机系统维护命令使用总结 uname -a //操作系统版本 instfix -i|grep ML //操作系统补丁 prtconf //获取硬件信息 mklv -y lvinformix -c 2 rootvg 64 //创建逻辑卷lvinformix,大小为64(LP)×16M=1G,磁盘镜像后需用-c参数 crfs -v jfs -d lvinformix -m /opt/informix //在lvinformix上创建文件系统/opt/informix mount /dev/lvinformix /opt/informix //将设备mount到文件系统上 chfs -A yes /dev/lvinformix //修改所建文件系统的自动安装属性(Auto-Mount) //以上四步为创建文件系统四步曲 mkvg -t 16 -s 4 -y vgdata hdisk2 //在hdisk2上创建卷组vgdata,-t 16指定系数factor=16,-s 4指定物理分区大小PP SIZE=4MB //factor×PP SIZE×1016≥hdisk2的大小。如果factor×PP SIZE×1016的值< hdisk2的大小,//请适当调整factor和PP SIZE的值 varyonvg vgdata //激活卷组vgdata varyoffvg vgdata //去激活卷组vgdata exportvg testvg //如果在smcp2上已经有testvg的信息,则先删除原有信息(exportvg),再引入新信息(importvg) importvg -y vgsmp hdisk2 //将vgsmp信息引入hdisk2 lspv //查看hdisk和vg的对应关系 lsdev -Cc disk //查看磁盘名和磁盘类型(内置盘还是SSA外置盘) lsdev -Cc processor //查询cpu的个数 lscfg -v -l ent0 //查看网卡ent0的MAC地址 lsvg -o //查询所有激活的卷组 chfs -a options=rw,mind /tellinshare/sms //设置文件系统/tellinshare/sms的mind属性 //否则当文件系统中有足够多的大文件(指32K以上的文件)时会出问题 mkgroup id=101 informix //创建组informix,组编号101 mkuser id=101 pgrp=informix home=/opt/informix shell=/usr/bin/csh informix //创建用户informix,命令参数说明: //id:指定用户的id号,请根据规划设置; //pgrp:指定该用户的归属组,请根据规划设置; //home:指定该用户的home目录,请根据规划设置;

在Informix+Dynamic+Server+中创建并使用函数索引

在Informix Dynamic Server 中创建并使用函数索引 随着数据量以惊人速度不断增长,数据库管理系统将继续关注性能问题。本文主要介绍一种名为函数索引(functional index)的性能调优技术。根据数据库使用情况的统计信息创建并使用函数索引,可以显著提升SELECT 查询的性能。通过本文了解如何在IBM ? Informix ? Dynamic Server 中创建和使用函数索引并最大限度提升查询性能。 简介 在选择数据库管理系统(DBMS)时,性能是一个关键的考虑因素。在执行SELECT、INSERT、UPDA TE 和DELETE 操作时,很多因素都会对性能产生影响。这些因素包括: 持久性数据存储的速度和大小 数据存储结构 数据访问方法 随着数据集不断变大,查询性能愈发变得重要。 通常,使用索引可以改善查询性能。索引将数据库中的行位置与一组有序数据子集和/或数据派生物关联在一起。索引可以减少DBMS 在执行查询时检查的行(或元组)数量,从而获得性能增益。有时,仅通过搜索索引即可完成查询,而不需要从表中取回任何元组(tuple)。例如,如果您在列c1 中建有索引,并且发出查询select c1 from t1 where c1 < 10 ,那么索引中包含了可以满足查询的所有信息。 有趣的是,ANSI SQL 标准并没有说明如何创建、实现或维护索引。因此,数据库供应商可以按照自己的方式自由地实现索引。 本文讨论了Informix Dynamic Server 的函数索引特性。要理解本文涉及的概念,您需要熟悉基本的数据库术语和概念,例如模式、表、行、列、索引和可扩展性。还需了解Informix Dynamic Server (IDS) 的基本配置以及如何启动和停止服务器、如何使用ONCONFIG 文件进行配置。此外,还需熟悉基本的SQL 命令以及如何使用dbaccess 对服务器执行SQL 命令。 本文的目的是帮助您理解函数索引的定义以及使用。此外,您还将了解如何创建和使用函数索引,以及在创建函数索引之前需要考虑的一些问题。 函数索引的优势 索引按照某种顺序保存列值。函数索引对列中的数据进行转换并按照顺序保存转换后的值。 假设某个表中保存了一个企业的员工名称,并且需要保留名称的大小写形式。那么,如果查询需要执行大小写不敏感的搜索(如下所示),则必须转换数据: SELECT * FROM t1 WHERE toUpper(name) LIKE 'ANTHONY % HOPKINS';

Informix数据库常用操作命令

Unix系统及数据库常用操作命令 oninit 数据库启动 onmode -ky 数据库关闭 onstat -l 查看逻辑日志使用情况 ontape -c 连续备份逻辑日志 onstat -g iof 查看每个chunk 的I/O 情况 onstat -g mem 查看数据库存的情况 onstat -d 查看数据库chunk 的使用情况 ontape -s -L 0 数据库0 级备份 dbimport -d -i

数据恢复(硬盘) dbexport -o 数据备份(硬盘) update staistics (high) (low) 数据库数据抽样统计 ontape -r 数据恢复(磁带) onstat -c 配置情况 onstat - 数据库状态信息 ps –ef |grep cmcld 查看MC/Service Guard 进程 cmviewcl 查看MC/Service Guard 运行情况 cmruncl [ f ] 启动群集 cmhaltcl [ -f ] 终止群集 cmrunnode node 启动群集中的一个结点 例:# cmrunnode HPK460-1 cmhaltnode mode 终止群集中的一个结点 例:# cmhaltnode HPK460-1 cmrunpkg -n node pkg 在节点node 上运行pkg 包 例:# cmrunpkg -n HPK460-1 pkg1 cmhaltpkg -n node pkg 在节点node 上终止运行pkg 包 例:# cmhaltpkg -n HPK460-1 pkg1 cmmodpkg -e -n node pkg 允许在节点node 上运行pkg 包 例:# cmmodpkg -e -n HPK460-1 pkg1 cmmodpkg -d -n node pkg 禁止在节点node 上运行pkg 包 例:# cmmodpkg -d -n HPK460-1 pkg1 cm 系列命令,均可附加参数“-v”,以冗余模式显示执行结果;参数“-f”表示强制执行而忽略错误警告。 vgdispaly [-v] vg_name 显示激活的卷组信息 例:# vgdispaly ;# vgdisplay /dev/vgo2 lvdisplay [-v] lv_path 显示激活的逻辑卷信息 例:# lvdisplay /dev/vg02/rootdbs vgchange -a y vg_name 激活卷组 例:# vgchange -a y /dev/vg02 vgchange -a e vg_name 以互斥方式激活卷组 例:# vgchange -a e /dev/vg02

6.在INFORMIX-ESQL/C中使用简单变量

第六章 在INFORMIX-ESQL/C中 使用简单变量

融 本章讲解如何使用C变量来保存简单的SQL数据,即字符和数值。 使用C变量来保存复杂的SQL数据将在其它的章节里详细讨论。下面列出来的是复杂的SQL数据类型: ●VARCHAR ●DECIMAL 和MONEY ●DATETIME 和INTERVAL ●BYTE 和TEXT

融 宿主变量存放SQL数据。正因如此,必须定义兼容的类型来存放SQL数据。 当数据从内存中写到数据库中时,数据库服务器把数据从C的数据类型转换成SQL的数据类型,当把数据从数据库中读到内存中时,Informix把数据从SQL的数据类型转换成C的数据类型。由用户负责定义适当类型的宿主变量。 上图列出了SQL的数据类型和C的数据类型之间的隐含的关系。如果没有象上面这样来定义宿主变量,数据库服务器将尝试自动转换(如果转换有意义的话)。 例如,这里举出了两种这样的情形,数据库服务器试图把一种数据类型转换成另一种类型: ●在WHERE字句中,把字符字段同整数相比较,如下: where zipcode > 90000 ●在算术表达式中不同类型的值一起运算,如下: set unit_price = unit_price * ( 1 + $PercentLf ) 在这类的表达式中,所有的值在运算之前转换成decimal类型。

融 INFORMIX-SQL/C使用DECIMAL类型来进行算术表达式中的所有的运算,由结果变量的类型来决定要存储或打印的结果的格式。 表达式中所有的值,如果不是DECIMAL类型,则转换成DECIMAL 类型,而且,运算的结果是DECIMAL类型。上图中列出了这类表达式里的值在进行转换后的精度和格式。 如果表达式中的某个值是浮点decimal数,则结果是浮点decimal 数。 当结果类型导致精度丢失时,ESQSL/C返回一个错误。

Informix数据库系统实用资料

Informix数据库系统实用资料 目录 一、Informix数据库服务器安装 (2) 1、建立informix用户及informix组 (2) 2、建立环境变量: (2) 3、重新注册root用户 (2) 4、准备Informix初始化环境。 (3) 4.1、编辑以下文件: (3) 4.2、准备数据库空间 (3) 4.3、修改sco open server 内核参数 (4) 5、初始化informix数据库方法之一 (5) 6、初始化informix数据库方法之二 (9) 二、Informix Online数据库日常管理及维护 (10) 1、启动、关闭Informix数据库 (10) 1.1、自动启动Informix (10) 1.2、自动关闭Informix (10) 2、Informix Online常见工作模式 (10) 3、管理Informix Online磁盘空间 (10) 4、Informix Online日志管理 (11) 4.1、数据库日志方式: (11) 4.2、物理日志的管理 (12) 4.3、逻辑日志的管理 (12) 5、Informix Online数据库备份及恢复 (12) 5.1、数据备份: (13) 5.2、逻辑日志文件备份 (13) 5.3、系统恢复 (14) 6、系统诊断 (14) 三、常用Informix Online监控实用工具 (15) 1、启动online命令为:oninit (15) 2、关闭online命令为:onmode -ky (15) 3、onmonitor: 系统总监控菜单 (15) 4、onstat: 检查online运行状态 (15) 5、oncheck: 检查及恢复online 数据库的一致性与完整性。 (15) 6、dbaccess: 用户数据库的维护工具 (15)

otl数据库

OTL技术应用 什么是OTL:OTL 是Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如 Oracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵。 OTL中直接操作Oracle主要是通过Oracle提供的OCI接口进行,依赖于Oracle 客户端。 OTL使用简单,只要头文件中包含有:#include “otlv4.h” 就可,实际上整个OTL就一个“.H”的文件,使用起来极为的方便。 优点(1).跨平台 (2).运行效率高,与C语言直接调用数据库API相当 (3).开发效率高,使用方便,繁在其内,简在其外,比 https://www.doczj.com/doc/4f2531872.html,使用起来更简单,更简洁 (4).部署容易,不需要ADO组件,不需要.net framework 等 缺点(1).只能在C++中使用 OTL的主要类 主要类包括:otl_stream、otl_connect、otl_exception ?otl_stream类 otl_stream类是OTL“流”的概念的具体表现形式,任何通过输入/输出参数使用SQL语句、PL/SQL 块或者是存储过程调用,在C++的编程中都能通过 otl_stream类来实现。 其构造函数为: (1)for Oracle 7/8/9/10: otl_stream(const int arr_size, // 流的缓存大小 const char* sqlstm, // SQL语句或PL/SQL块或存储过程 otl_connect& db, // OTL数据库连接对象 const char* ref_cur_placeholder=0, // 游标引用占位符名称 const char* sqlstm_label=0 // SQL 语句标签);

理解-ontape-配置、命令和语法

[转] 理解ontape 配置、命令和语法 本节将介绍ontape 实用程序。 配置ontape 实用程序 ontape 实用程序使用ONCONFIG 文件中的6 个参数创建存储空间和逻辑日志备份。表11 给出了 ontape 使用的配置参数。 表11. Ontape 备份和还原配置参数 参数说明 TAPEDEV 指定用于备份和还原存储空间的磁带设备、目录或文件名。要配置ontape 来使用标准I/O,可将TAPEDEV 置为STDIO。 TAPEBLK 指定用于存储空间备份期间的写入操作的设备的块大小。块大小在备份和还原期间必须保持相同。 TAPESIZE 指定用于备份和还原的设备的最大大小。将它设置为0 会使用全部磁带容量。对于远程设备,不能将磁带大设置为0。 LTAPEDEV 指定用于逻辑日志备份和还原的磁带设备、目录或文件名。 LTAPEBLK 指定用于逻辑日志备份和还原期间的写入操作的设备的块大小。块大小在备份和还原期间必须保持相同。 LTAPESIZE 指定用于备份和还原的设备的最大大小。将它设置为0 会使用全部磁带容量。对于远程设备,不能将磁带大设置为0。 如果TAPEDEV 指向某个磁带设备,它将在每个命令完成后自动倒回。在从磁带读取或向其写入数据之 前,数据库服务器会执行一系列需要倒回的检查。如果将TAPEDEV 或LTAPEDEV 设置为一个文件, 该文件会被后续备份覆盖,但在这样做之前会提醒您。 将TAPEDEV 或LTAPEDEV 设置为一个目录,确保每个物理或逻辑日志备份都写入到了新文件中。 如果在Windows 上将LTAPEDEV 设置为/dev/null 或在Windows 上设置为NUL,则会关闭逻辑日志 备份。逻辑日志会自动标记为已保存,以便可以覆盖它们。如果未保存日志,则无法执行逻辑还原。 回页首 使用ontape 备份存储空间和文件 本节将介绍如何使用ontape 备份存储空间和逻辑日志文件。 存储空间备份 ontape 实用程序支持存储空间的0、1 和2 级备份。它按照以下顺序备份存储空间:根存储空间、物理 和逻辑日志存储空间、blobspace、智能blobspace 以及其他存储空间。 在开始使用ontape 创建备份之前,请确保TAPEDEV 参数所指定的位置支持写入。表12 给出了使用 ontape 备份存储空间的命令示例。

informix数据库的操作和维护

INFORMIX数据库的常用管理命令 约定 ?命令行中,<>括起来的内容不是实际要键入的内容,而是要键入的内容的说明。 ?命令行中,[]括起来的内容表示是可选项。 ?命令行中,a | b表示a或b选其中之一,为消除二义性,有时也用{a | b }表示。 ?命令行尾的\表示由于排版的限制一行写不下换到下一行,实际输入时可以不换行。 ?/* */括起来的斜体字表示注释。 1.简介 INFORMIX-OnLine Dynamic Server(以下简称OnLine)提供了一个字符窗口界面的集成管理工具onmonitor,通过它可以完成除了数据备份外的大部分常用管理任务。 同时,OnLine还提供了一整套命令行管理工具,常用的有以下这些: 命令功能 oninit 启动OnLine onmode 改变模式和共享内存 onstat 通过共享内存结构监视OnLine的操作状态 oncheck 检查、修复、显示OnLine的磁盘结构 ondblog 改变database的log方式 onparams 修改逻辑和物理日志的配置参数 onspaces 修改blobspace和dbspace的配置 ontape 数据库备份和恢复工具 onarchive 比ontape功能更强的备份和恢复工具 dbexport 将整个database备份成文本文件格式 dbimport 用文本文件格式的database备份重建database dbschema 显示数据库、表的结构 dbaccess 字符窗口界面的交互式SQL命令执行环境 严格来说,最后四个命令不属于管理工具,但是因为在进行数据库管理时经常用到,所以也在此列出。

一些Informix+SQL函数的用法及日期操作

一些Informix SQL函数的用法 一、内部函数 1、内部合计函数 1)COUNT(*)返回行数 2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数 3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和; 4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和 5)A VG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值 6)A VG(DISTINCT COLNAME)返回指定列中唯一值的平均值 7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值 8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值 2、日期与时间函数 1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号2)MONTH(DATE/DATETIME EXPRESSION)返回指定表达式中的月份 3)YEAR(DA TE/DATETIME EXPRESSION)返回指定表达式中的年份 4)WEEKDAY(DA TE/DA TETIME EXPRESSION)返回指定表达式中的当周星期几 5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值 6)TODAY返回当前日期的日期值 7)CURRENT[first to last]返回当前日期的日期时间值 8)COLNAME/EXPRESSION UNITS PRECISION返回指定精度的指定单位数 9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值 10)DATETIME(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值 11)INTERV AL(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值 12)EXTEND(DATE/DATETIME EXPRESSION,[first to last])返回经过调整的日期或日期时间值 例子1、和UNITS合用,指定日期或时间单位(year,month,day,hour,minute,second,fraction): let tmp_date = TODAY+ 3 UNITS day 例子2、let tmp_date = MDY(10,30,2002)-- 2002-10-30 例子3、let tmp_date = today + interval(7) day to day--当前时间加上7天; 注:该功能与1相似; 例子4、EXTEND转换日期或日期时间值 let tmp_inthour = EXTEND(datetime1,hour to hour)

informix常用故障处理操作

Informix 计算长事务回滚时间及解决办法 如何估算长事务回滚的时间 环境: IDS9.40及其以上版本 问题描述: 用户往往由于一次操作的数据量过大,导致长事务,使整个数据库服务器暂时挂起而不可用。用户需要估算长事务回滚完成的时间,以便做出安排。 解答: 可以使用onstat -x -r 10监控该事务的回滚状态.并通过日志回滚的速率来估算回滚的时间。“-r 10”表示每10秒显示一次。下面是两次的间隔10秒输出: address flags userthread locks beginlg curlog logposit isol retrys coord d745b58 A-R-- d715e7c 4904 51 53 0x8f61c8 COMMIT 0 address flags userthread locks beginlg curlog logposit isol retrys coord d745b58 A-R-- d715e7c 4904 51 53 0x5a1acc COMMIT 0 从输出可以看到,该事务起始的逻辑日志号是51,当前回滚到53,还需要继续回滚2个逻辑日志。在这10秒中回滚的逻辑日志大小可以通过两次的logposit相减得出,方法为:去掉每个logposit的后三位,剩下的数字相减就是日志回滚的page数目,再乘以page size 就可得到这10秒回滚的日志大小。例如: (0x8f6 - 0x5a1)*4 = 3412 K (4表示当前系统的page size是4K),那么一分钟逻辑日志能够回滚3412/10*60=20472 K 假设每个逻辑日志的大小为50M,则该长事务还需要回滚的时间大约是5.28分钟((1024*50) * 2 + 0x5a1*4)/20472 =5.28

数据库审计系统

数据库审计系统 项目需求书项目名称:数据库审计系统

一、系统概述 数据库审计系统主要用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时地、智能地解析对数据库服务器的各种操作,能对特定的操作进行告警,并记入审计数据库中以便日后进行查询、分析、过滤,实现对目标数据库系统的用户操作的监控和审计。 二、采购清单 本次招标采购的软硬件以及配套设备如下表:

三、系统建设目标 (一)系统目标 建设适应未来发展和管理需要的、功能完善、架构合理、技术先进的数据库审计系统,实现信息科技运行安全、数据安全,方便快捷地实现对各个数据库操作实时监控,提高运行安全性,满足监管要求。 (二)安全目标 系统安全架构和流程设计必须符合我行相关业务规范、技术规范和安全规范,符合国家密码管理局和人民银行、银保监会等监管机构的安全性要求,保证所采取的安全措施符合相关法律法规的规定。 系统应具有数据传输及存储过程中的可靠性、完整性、可用性、机密性、可审计性,确保客户信息的安全。 系统应具有完备的安全控管功能和审计功能,能够记录自身运行的日志信息,能够对系统操作员的操作记录进行审计。 四、功能需求 (一)总体要求 数据库审计系统建设应遵循以下原则进行设计和实现: 1.系统化:系统功能全面、完善,各个环节应有机结合形成统一的整体。 2.成熟性:选用成熟的系统,能够满足大部分的技术要求,结合监管、审计以及我行实际的需求形成完善的数据库审计系统。 3.稳定性:系统各项功能模块运行应稳定可靠,各项流程模块、报告的结果及时准确无误,用户操作流畅,与被监控的第三方系统不产生负面影响。 4.可配置:运维服务的流程简易功能以及报表等均可由用户自行设置。 5.可扩展、易集成:系统的功能和部署范围应具有根据招标方需求进行扩展的能力。 6.安全性:系统的安全性应达到招标方安全管理的规范要求,并在实施过程中做好安全保障措施和应急准备,确保方案优良和建设过程顺利。 7.自动化:能自动发现现有数据库的信息,能自动监控数据库操作,自动推

INFORMIX数据库函数

一、内部函数 1、内部合计函数 1)COUNT(*)返回行数 2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数 3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和; 4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和 5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值 6)AVG(DISTINCT COLNAME)返回指定列中唯一值的平均值 7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值 8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值 2、日期与时间函数 1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号 2)MONTH(DATE/DATETIME EXPRESSION)返回指定

表达式中的月份 3)YEAR(DATE/DATETIME EXPRESSION)返回指定表达式中的年份 4)WEEKDAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当周星期几 5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值 6)TODAY 返回当前日期的日期值 7)CURRENT[FIRST TO LAST] 返回当前日期的日期时间值 8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数 9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值 10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值 11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值 12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回经过调整的日期或日期时间值 To_char函数将datetime和date值转化为字符值。To_date函数将字符值转化为datetime类型的值。例

文本预览
相关文档 最新文档