当前位置:文档之家› c语言和INFORMIX数据库

c语言和INFORMIX数据库

c语言和INFORMIX数据库
c语言和INFORMIX数据库

Linux系统下C语言编程

—怎么向INFORMIX数据库插入数据

就是先定义一个结构,给结构赋值,然后把结构里的数据放到informix数据库里面

是在UNIX系统下面完成的,知道的朋友能不能给我讲讲。

主要是结构里面的东西怎么往表里面写。

在UNIX下面,用ESQL编程,和C也差不多,就是往里插入SQL语句

也可以像C一样的定义变量。

用ESQL/C编程

概述

使用informix-esql/c语句的C程序通常包括下列元素,本章将逐一讲述:

head files头文件

include files包含文件

host variables宿主变量

indicator variables指示变量

SQL语句

在程序中也可以包含动态定义的语句,将在第九章讲述。

本章提供了下列主题的详细说明:

1在esql/c程序中使用头文件

2对esql/c提供预处理

3在C程序中嵌入SQL语句

4识别C变量

5处理与编译C程序

********************

在C程序中嵌入SQL语句

SQL语句用$符号或EXEC SQL关键字嵌入到C程序中,使用关键字与ANSI标准一致。

esql/c中的大小写敏感性

informix-esql/c预处理器对变量名的大小写不敏感。

由PREPARE语句产生的语句id号和由DECLARE语句产生的游标名默认是不敏感的。如果希望预处理器对游标名和语句id大小写敏感,可以在esql的命令行中加入-cs参数。

*插入注释

你可以用双减号作为注释符号在任何的INFORMIX-ESQL/C行中加入注释。注释持续到一行的结束。

同时也可以在INFORMIX-ESQL/C行中使用标准的C注释。如:

----------------------------------------------------

$database stores5; -- stores5 database is open now!

printf("\nDatabase opened\n"); /* This isn’t an ESQL/C line*/

/* so it needs a regular C notation for a comment*/

$begin work; /*You can also use a C comment here*/

---------------------------------------------------

头文件

随informix-esql/c提供有几个头文件,均位于$INFORMIXDIR的/incl子目录下,说明如下:

sqlca.h包含有存储了错误状态代码的结构。这个文件在程序预处理时被自动包含,以检查SQL语句的成功或失败。

sqlda.h包含有存储了数值指针和动态定义变量描述的结构。

sqlstype.h包含了与SQL语句相应的整形常量,与DESCRIBE语句一同使用。

sqltypes.h包含了与C语言和SQL数据类型相应的字符串定义,与DESCRIBE语句一同使用。varchar.h包含了可用的VARCHAR数据类型的宏。

locator.h包含了存储有blob地址信息的结构。

sqlxtype.h包含了在X/Open模式下工作时与C语言和SQL数据类型对应的字符串定义。decimal.h包含存储有DECIMAL数据类型定义的结构

datetime.h包含存储有DATETIME和INTERVAL数据类型定义的结构。

在使用时可以用$include把头文件加入到esql/c代码中。

在包含时可以用或不用双引号,但如果要包含的文件是绝对地址的话就要用双引号。

预处理器按下列顺序查找包含文件:

1、在当前目录中

2、在$INFORMIXDIR/incl/esql中

3、在/usr/include中

$define和$undef语句

其他的ESQL/C预处理语句与C语言中相应语句有一样的语法形式,只不过它们在

informix-esql/c预处理期间发挥作用:

$define

$undef

ifdef,ifndef,else,elif,endif语句

informix-esql/c预处理器不支持所有的$if语句,仅支持$ifdef和$ifndef语句检查一个变量名是否定义。

预处理器处理下列语句:

$ifdef测试一个名称并执行其后各语句,如果其被$define定义。

$ifndef测试一个名称,如果没有定义则执行其后各语句。

$elif

$else

$endif

在SQL语句中使用宿主变量

宿主变量是指在SQL语句中使用的普通的C变量。当你在SQL语句中使用宿主变量时,要在其名称前加上一个$或:,例如宿主变量hostvar,如果在SQL语句中出现时则为$hostvar 或:hostvar。

用冒号作为宿主变量前缀符合ANSI标准。

定义宿主变量

除非在定义时加有$前缀或是定义在EXEC SQL BEGIN DECLARE SECTION / EXEC SQL END DECLARE SECTION之内,否则宿主变量就定义为普通的C变量。

下面是一个使用$格式定义宿主变量的例子:

/* pointer to a character */

$ char * hostvar;

/* integer */

$ int hostint;

/* double */

$ double hostdbl;

/* character array */

$ char hostarr[80];

/* structure */

$ struct {

int svar1;

int svar2;

...

} hoststruct;

下面用的是EXEC SQL格式的例子:

EXEC SQL BEGIN DECLARE SECTION

char *hostvar;

int hostint;

double hostdbl;

char hostarr[80];

EXEC SQL END DECLARE SECTION

EXEC SQL BEGIN DECLARE SECTION

struct {

int svar1;

int svar2;

...

} hoststruct;

EXEC SQL END DECLARE SECTION

初始化宿主变量

INFORMIX-ESQL/C允许你用标准的C表达式定义宿主变量。但是,字符串初值中不能含有嵌入的分号或是ESQL/C关键字。下面是有效的初值。

$int varname = 12;

$long cust_nos[8] = {0,0,0,0,0,0,0,9999};

宿主变量作用域

宿主变量作用域与标准C语言作用域适用相同规则。

除非清楚地定义为外部或静态变量,否则一个宿主变量定义为一个自动变量。

在函数中定义的宿主变量局部于该函数并屏蔽了外部同名变量。

在同一个代码块中不可重复定义同一变量。

定义一个块(block)

保证在一个块内定义的宿主变量局部于该块的方法是使用${和$}对来打开和关闭一个块。或者还可以更简单地用一个花括号对,{和}来标注一个块。例如在下例中的宿主变量blk_int

只在括号块内有效,而p_int则在块的内外部都有效。

$int p_int

...

$select customer_num into $p_int from customer

where lname = "Miller";

...

${

$ int blk_int

...

$blk_int = $p_int;

select customer_num into blk_int from customer

where lname = "Miller";

...

$}

...

块的嵌套可达16层,全局层是第一层。

在ANSI标准语法中不支持${和$}符号。

宿主变量的类型

由于宿主变量出现在SQL语句中,故都与一个SQL数据类型有关。另外,一个宿主变量必须被定义为一个C的数据类型。SQL数据类型与C数据类型的关系总结如下:

-----------------------------------------------------------------------

SQL Type ESQL/C Predefined C Language Type

Data Type

CHAR(n) fixchar array[n], or char array [n + 1] or char *,

CHARACTER(n) string array [n+1]

BYTE loc_t

TEXT

DATE long int

DATETIME datetime or dtime_t

DECIMAL decimal or dec_t

DEC

NUMERIC

MONEY

SMALLINT short int

FLOAT double

DOUBLE PRECISION

INTEGER long int

INT

INTERVAL interval or intrvl_t

SERIAL long int

SMALLFLOAT float

REAL

VARCHAR(m,x) varchar[m+1] or char array[m+1]

string array[m+1]

------------------------------------------------------------------------

结构体作为宿主变量

结构体可以被声明为informix-esql/c宿主对象。在esql/c语句中,你可以命名结构体变量作为一个整体或作为其独立的部件。如果使用结构体名,则其被填充到一个部件名列表中去。结构体可以嵌套。

$struct customer_t

{

int c_no;

char fname[32];

char lname[32];

} cust_rec;

$struct customer_t cust2_rec;

在上述声明前提下:

$insert into customer values ($cust_rec);

等价于

$insert into customer

values ($cust_rec.c_no, $cust_rec.fname,

$cust_rec.lname);

typedef表达式作为宿主变量

ESLQ/C支持标准C的typedef表达式而且允许它们作为宿主变量,如下列代码创建了smallint类型作为一个短整形类型和serial类型作为长整形类型。然后声明一个变量row_nums作为serial类型,另一个变量counter作为smallint类型。

$typedef short smallint;

$typedef long serial;

$serial row_nums [MAXROWS];

$smallint counter;

不能用typedef来声明一个多维数组或联合作为宿主变量。

宿主变量的空值

esql/c提供了一个用来测试宿主变量是否为空的函数(risnull),另一个函数用来设置宿主变量为空(rsetnull).

一个INFORMIX-ESQL/C样例

这个例子使用一个没有自由参数的select语句,也就是说,所有需要运行select语句的信息在编译时都包含在程序中。

demo1.ec读取stores5数据库的customer表中的名和姓(以字母C开始)。两个宿主变量$fname和$lname用来存放从customer表中读取的数据,声明了一个游标用来管理从表中得到的信息。记录被一行一行地读取的同时姓名输出到屏幕上。

-----------------------------------

1 #include

2 $include sqlca;

3

4 /* Uncomment the following line if the database has

5 transactions: */

6

7 /* $define TRANS; */

8

9 $define FNAME_LEN 15;

10 $define LNAME_LEN 15;

11

12 main()

13

14 {

15 $char fname[ FNAME_LEN + 1 ];

16 $char lname[ LNAME_LEN + 1 ];

17

18 printf( "\nDEMO1 Sample ESQL program running.\n\n");

19

20 $database stores5;

21

22 $declare democursor cursor for

23 select fname, lname

24 into $fname, $lname

25 from customer

26 where lname > "C";

----------------------------------

1-3行

#include语句从/usr/include目录包含了UNIX头文件stdio.h。这个文件使demo1可以使用I/O库。sqlca.h文件是一个ESQL/C的头文件,定义了有错误发生时保存ESQL/C错误信息的结构。

4-10行

这几行代码会在ESQL/C预处理的第一阶段进行处理。第4到6行是第七行的注释,如果去除define TRANS的注释,一个指示数据库符号就被创建,并使用事务。第9到10行定义常量FNAME_LEN和LNAME_LEN,它们在后面的宿主变量定义中要用到。

15-16行

这几行为fname和lname定义宿主变量,宿主变量接收从表中得到的数据,并提供向表中写入的数据。fname字符数组的长度比其关联列的长度大1,多出的一个字节用来存放字符串终结符。

18行

告诉程序用户程序开始执行了。

20行

这行是程序中的第一条SQL语句。它打开名为stores5的数据库。在打开前,这个数据库必须已经创建了。

22到26行

这几行含有创建一个名为democursor的游标的DECLARE语句用来管理从customer表中读取的数据。从表中读取的数据类型由第23到26行中的DECLARE语句中的SELECT语句来确实。根据SELECT语句,只有姓的起始字符为C的人的姓名会被选取。

----------------------------------------

27 $ifdef TRANS;

28 $begin work;

29 $endif;

30

31 $open democursor;

32

33 for (;;)

34 {

35 $fetch democursor;

36 if (sqlca.sqlcode != 0) break;

37 printf("%s %s0,fname, lname");

38 }

39

40 $close democursor;

41

42 $ifdef TRANS;

43 $commit work;

44 $endif;

45

46 printf("\nProgram Over.\n");

47 }

-------------------------------------

27-29行

这几和由ESQL/C的预处理器第一阶段进行处理。如果设置了TRANS符号,则在$ifdef和$endif之间的行就被编译。在此例中,28行上的BEGIN WORK语句被编译进代码中。

31行

OPEN语句打开了democursor游标。

33-38

这一段是一包含fetch语句的loop循环。loop的每个动作中fetch语句都通过democursor 游标从表中选择一行并把数据放到宿主变量fname和lanme中,只要sqlca.sqlcode为零,数据就被成功读取,然后循环结束。如果发生错误,数据库服务器将设置sqlca.sqlcode

为一个非零值。当所有匹配SELECT规则的行读取后,数据库服务器设置sqlca.sqlcode为100。所以当sqlca.sqlcode不为0时,循环退出。

40行

CLOSE语句断开游标与SLEECT语句的联接。

42-43

如果设置了TRANS符号,第43行就被编译。本例中,28行中的BEGIN WORK语句应该已经被编译进代码中。

44-45

最后两行告诉用户程序结束并关闭主函数。

第二章

ESQLC的数据类型

一,为宿主变量选择数据类型

宿主变量出现在SQL语句中,都与一个SQL的数据类型相关联。SQL,ESQLC,C的数据类型对照表见附表。

字符数据类型的选择

如果你使用字符数据类型,可以在char,string,fixchar,varchar四种类型中选择一种作为宿主变量类型,这几种类型的区别如下:

char此类型用空格填充尾部直到CHAR型字段长度,并带有字符串终止符,声明时要将长度在字段长度上加1。

string此类型数据与chra的不同在于在插入字符串终止符前截掉尾部空格。声明时也要将长度在字段长度上加1。

fixchar此类型与char类型基本相同,除了它不在尾部加上字符串终止符。也就是声明时可以与对应的字段长度相同。

varchar此类型实际上是字符数组,其后添加了字符终止符,声明时长度要在字段最大长度加1。

数据转换

当两个宿主变量的数据类型不同,或者两列的数据类型不同时,ESQL/C就尝试将其中一个转换为另一个的类型以使它们相同。这包括把一个以数字形态表示的文本型转换为数值型。例如,为了比较一个数值与一个文本型数值,就有必要进行这种转换。

即使变量声明没有按照前术的对照关系,如果转换有意义的话,ESQL/C也尝试进行转换。转换可能发生在多种情形下,下面是一些常见的转换情形:

1、如果你设定一个比较两个不同类型的值的时候。

2、如果你用一个类型的宿主变量向表中插入值而接收该值的列是另一类型时。

3、如果一个数值与另一类型的数值进行操作时,在操作前两个值都要转换为一个DECIMAL 类型的值。

如果数值型转换为字符型,则为其创建一个字符串。

如果不能转换,原因或者是转换没有意义,或者是接收的变量过小无法放下转换后的值,ELSQ/C返回的值如下所示,N代表一个数值型数据,C代表一个字符型数据。

---------------------------------------------------------

转换问题结果

C->C 放不下字符串被截断;sqlca.sqlwarn.sqlwarn1设为W;

指示变量被设为原始串大小。

N->C 放不下字符串用星号填充;sqlca.sqlwarn.sqlwarn1设为W;

指示变量设为一个正整数。

C->N 不是一个数 the number is undefined;sqlca.sqlcode设为一个负数。

C->N 溢出同上

N->N 溢出同上

---------------------------------------------------------

在DATETIME类型和DATE类型间转换

ESQLC没有提供自动转换DATETIME和DATE类型的函数。可以使用现在函数和中间字符变量来进行转换。

要转换一个DATETIME类型的值,有以下几步:

1、用dtextend来调整DATETIME为年到日

2、用tdtoasc创建一个yyyy-mm-dd格式的字符串。

3、用rdefmtdate加一个模式参数将字符串转换为DATE值。

数据类型函数概述

下表列出了informix中作用于两种以上数据类型的库函数,对空值操作的函数,或者格式化某些变量类型的函数。以rtyp打头的为不同数据类型提供了机器无关的大小和对齐信息。以rfmt打头的把一个数值转换为一个格式化字符串。

---------------------------------------------------------

函数名说明

rfmtdouble 把一个双精度数值转换为一个字符串

rfmtlong 把一个长整型数转换为一个格式化字符串

risnull 检查一个C变量是否为空

rsetnull 设置一个C变量为空

rtypalign 在适当类型边界上对齐数据

rtypmsize 给出SQL数据类型的字节大小

rtypname 转换数据类型为字符串

rtypwidth 给出最小转换字节大小

----------------------------------------------------------

RISNULL

目的:检查一个变量是否为空

语法:

int risnull(type,ptrvar)

int type;

char * ptrvar;

ptrvar是一个指向C变量的指针。

type是一个对应于C变量的数据类型的整数。

返回值:

1 变量为空

0 变量不空

------------------------------------------------------------

RSETNULL

目的:

本函数将一个C变量设为与数据库空值对应的值

语法:

------------------------------------------------------------

int rsetnull(type,ptrvar)

int type;

char *ptrvar;

----------------------------------------------

ptrvar是一个指向C变量的指针

type是一个对应于C变量的数据类型的整数

这个函数对应的例子中,更新表的语句:

$update stock set unit_price=$unit_price where current of upcurs

功能是更新游标中的当前行中的unit_price列的值,其中的where子句为where current of upcurs,是指游标upcurs中的当前行。

#define LCASE(c) (isalpha(c) ? (isupper(c) ? tolower(c) : c) : c)

称为条件表达式,一般形式为:a>b? a:b,含义为如果a>b,则该条件表达式值为a,否则该条件表达式值为b。

条件表达式的结合方向为自右向左,即如果有条件表达式a>b?a:c>d?c:d,则其等价于

a>b?a:(c>d?c:d),所以上术程序中的表达式的计算是:先判断字符c是否为字母,如果是则再判断c是否为大写字母,如果不是字母则表达式值为非字母字符c,如果是大写字母,则将c转换为小写字母,如果不是大写字母(即为小写字母),则直接取c值。

用if语句表达如下:

if isalpha(c) then

if isupper(c) then

tolower(c)

printf(c)

else

printf(c)

endif

else

printf(c)

endif

在标准C语言中,以0代表逻辑假,以非0代表逻辑真。

字符串:format[]="($$,$$$,$$$.&&)"是一个格式化串,用来对数值进行格式化。其中$用来在最左端添加一个浮动的$符号,&用来在显示域中可能为空的位置上显示0。

p78

第一章 ESQL介绍

本章对ESQL做一概括介绍,主要讨论怎么使用ESQL、ESQL的基本的概念和定义、ESQL程序的各个部分和ESQL 程序中语句的类型.

SQL语言是非过程化语言,大部分语句的执行与其前面或后面的语句无关,而一些高级编程语言都是基于如循环,条件等结构的过程化语言,尽管SQL语言非常有力,但它却没有过程化能力.若把SQL语言嵌入到过程化的编程语言中,则利用这些结构,程序开发人员就能设计出更加灵活的应用系统,具有SQL语言和高级编程语言的良好特征,它将比单独使用SQL或C 语言具有更强的功能和灵活性.

COBASE RDBMS提供两种工具在主语言中编程来存取COBASE数据库中的数据.即高级语言预编译程序接口(ESQL)和高级语言的函数调用接口(CCI).目前这些工具仅支持C语言. COBASE RDBMS提供的ESQL工具把含有SQL语句的C程序转化为可存取和操纵COBASE数据库中数据的C程序,作为一编译器,ESQL把输入文件中的EXEC SQL 语句在输出文件中转化为适当的CCI函数调用.输出文件则可以正常的C程序的方式被编译、连接和执行.

1.1 ESQL中的基本概念 ESQL中的基本概念主要有:

1.嵌入的SQL语句:

嵌入的SQL语句是指在应用程序中使用的SQL语句.该应用程序称作宿主程序,书写该程序的语言称作宿主语言.嵌入的SQL语句与交互式SQL语句在语法上没有太大的差别,只是嵌入式SQL语句在个别语句上有所扩充.如嵌入式SQL中的SELECT语句增加了INTO子句,以便与宿主语言变量打交道.此外,嵌入式SQL为适合程序设计语言的要求,还增加了许多语句,如游标的定义、打开和关闭语句等等.

2.执行性SQL语句和说明性SQL语句:

嵌入的SQL语句主要有两种类型:执行性SQL语句和说明性SQL语句.执行性SQL语句可用来连接COBASE,定义、查询和操纵COBASE数据库中的数据,每一执行性语句真正对数据库进行操作 ,执行完成后,在USERCA中存放执行信息.说明性语句用来说明通讯域和SQL语句中用到的变量. 说明性语句不生成执行代码,对USERCA不产生影响.

3.事务:

事务是逻辑上相关的一组SQL语句.COBASE把它们视作一个单元.为了保持数据库的一致性,一事务内的所有操作要么都做,要么都不做.

1.2 ESQL程序的组成和运行在ESQL程序中嵌入的SQL语句以EXEC作为起始标识,语句的结束以";"作为标识.在嵌入的SQL语句可以使用主语言(这时是C语言)的程序变量(即主变量),这时主变量名前加冒号(:)作为标志,以区别于字段名.

ESQL程序包括两部分:程序首部和程序体.程序首部定义变量,为ESQL程序做准备, 程序体包括各种SQL语句来操纵COBASE数据库中的数据.

编制并运行ESQL程序比单独使用纯C语言多一个预编译过程,通常具有以下几个步骤:

1.编辑ESQL程序(可利用编辑软件如: EDLIN, WS等进行编辑).程序保后缀为.ec.

2.使用COBASE的预编译器ETE对ESQL源程序进行预处理,该编译器将源程序中嵌入的SQL 语言翻译成标准C语言,产生一个C语言编译器能直接进行编译的文件.其文件的扩展名

为.cpp。该cpp文件可以和普通的cpp文件一样被放入一个工程中被C++编译器编译,连接最后运行。对COBASE的预编译器的使用的详细说明见第六章.第二章 ESQL 程序的基本结构

ESQL程序由两部分组成:程序首部和程序体.

2.1 程序首部每一个ESQL程序的开始,就是程序的首部,它包括以下三部分:

1.DECLARE部分:

说明特殊的主变量,这些变量区别于纯C语言程序中的变量,COBASE使用这些变量与程序之间相互作用.

2.INCLUDE USERCA语句: 说明一个SQL语句的通讯域(USERCA),它提供了错误处理,其功能等价于代替C语言中的#INCLUDE语句.

3.CONNECT语句: 建立程序与COBASE之间的连接.

2.1.1DECLARE部分:(描述部分) 在DECLARE SECTION (描述部分),定义所有在SQL语句中用到的主变量,定义部分是以: EXEC SQL BEGIN DECLARE SECTION; 和 EXEC SQL END DECLARE SECTION;

开始和结束的.

在这两个语句中,只可以定义 SQL 语句中用到的主变量,每个预编译单元只允许一个BEGIN/END DECLARE SECTION (描述部分),但是一个程序可以包含许多独立的预编译单元。若一个主变量或指示变量在ESQL程序中的SQL语句中引用,但它没有在描述部分中定义,则程序在预编译时就会出现错误信息.

在这两个语句中可以定义的变量有六种类型:INT,SHORT,CHAR,FLOAT,NUMBER,DATE.其中CHAR型允许定义二维数组,其它类型只允许定义一维数组,不允许有指针类型 ,在此处变量可以赋值.

例如:

EXEC SQL BEGIN DECLARE SECTION;

int sno;

char sname[11];

short snameid;

EXEC SQL END DECLARE SECTION;

(1)主变量:

就是用在SQL语句中的主语言变量.主要用于程序变量和数据库内部交换数据之用,它们的数据类型必须是在主语言中描述部分里定义过的,而且它们的数据类型必须和COBASE数据库中已定义的表中的数据类型相匹配

Informix ESQL/C使用游标的一个小例子

[收藏此页] [打印]

作者:网络佚名 2006-04-16

内容导航:

Informix ESQL/C使用游标的一个小例子

第1页: Informix ESQL/C使用游标的一个小例子

文本Tag: Informix数据库

【IT168 服务器学院】在informix里,我们要把一个记录里得值全部都读出来,然后在屏幕上把这些记录值给打印出来得话,该如何实现呢,那我们就要使用到游标来解决问题,下面是一段使用游标得简单代码,这是一个ec程序:

#include

#include

#include

#include

#include

main()

{

EXEC SQL INCLUDE SQLCA; /*定义通信区*/

EXEC SQL BEGIN DECLARE SECTION; /*主变量定义开始*/ char *string1;

char str1[10];

char str2[10];

EXEC SQL END DECLARE SECTION; /*主变量定义结束*/

/*EXEC SQL DROP DATABASE example;*//*可用可不用*/ EXEC SQL CREATE DATABASE example;

EXEC SQL connect DATABASE example; /*连接数据库*/ if (SQLCODE == SUCCESS)

{

EXEC SQL CREATE TABLE Student

( alarm char(6) ,

sname char(10)

);

}

//插入数据

EXEC SQL INSERT INTO Student VALUES("aaaa","bbbb");

EXEC SQL INSERT INTO Student VALUES("dddd","dddd");

EXEC SQL INSERT INTO Student VALUES("cccc","cccc");

//设置游标其中DECLARE是将查询得结果赋予fet_cur

EXEC SQL DECLARE fet_cur CURSOR FOR

SELECT alarm, sname FROM Student;

EXEC SQL OPEN fet_cur;

printf("SQLCODE=%d\n", SQLCODE);

for(;;)

{

memset(str1, 0, sizeof(str1));

memset(str2, 0, sizeof(str2));

/*把记录游标fet_cir移到一个新位置,凭且把记录值赋予变量str1和str2*/

EXEC SQL FETCH fet_cur INTO :str1,:str2;

if (SQLCODE != SUCCESS)

{

printf("LINE=%d, SQLCODE=%d", __LINE__, SQLCODE);

break;

}

//打印记录结果

printf("str1=%s, str2=%s\n",str1,str2);

}

//关闭游标和数据库

EXEC SQL CLOSE fet_cur;

EXEC SQL CLOSE DATABASE;

/*

EXEC SQL SELECT first 1 alarm,sname

INTO :str1,:str2 FROM Student;

if (SQLCODE !=0)

{

printf("LINE=%d, SQLCODE=%d", __LINE__, SQLCODE); return(-1);

}

printf("str1=%s, str2=%s\n",str1,str2);

*/

return(0);

}

其结果是在屏幕上打印出从informix里读出得数据:

str1=aaaa , str2=bbbb

str1=dddd , str2=dddd

str1=cccc , str2=cccc

记住,打开游标、数据库一定记住关闭,养成良好的编程习惯!

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

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 连续:将两个或多个表通过一个或多个相同的列联系起来成为一个新的结果表

nbu配置手册(oracle+informix)

Windows平台Nbu配置手册 一、系统架构 Master server: windows2003 hostname:nbu Media server: windows 2003 hostname:client01 Oracle:test实例运行在client01主机上 rman库运行在nbu主机上 二、安装nbu软件 安装软件之前确定好hosts表里面对应的ip和host名 1、安装master server Solaris:首先安装NetBackup_6.5_ICS_Solaris.tar.gz, 都选第一个(PBX)。 6.0版本还需要安装一个rs的包 然后再开始安装master server Windows: 将安装光盘放入光驱,选择Launch.exe双击运行 NEXT,直到出现选择master server、Media server 和admin console的界面时输入license 之后master server和media server变为可选状态,选择master server进行安装 选择typical方式安装 配置企业介质管理服务器,一般默认选择master server 2、安装media server 同master server 安装类似,只是在选择界面选择media server即可 3、安装client 端 可以将介质传到客户端进行安装,也可以通过在master server上安装同时分发到各个客户端,我们选择分发的方式进行安装。 选择install client software→select from available computers on the network/typical→输入master server,选择LAN方式然后进行安装 4、安装补丁包: 在NBU中远程分发客户端软件 到客户端主机上面安装nbu软件client端或: step1:创建新的policy 客户端总是和一个具体的备份策略(Policy)相绑定,客户端不能独立于Policy而存在.所以通过在Master Server上以”PUSH”方式向客户端分发NBU客户软件之前,必须先创建合适的Policy.(在Server上分发客户端软件,必须确保相应的客户端软件已存在于服务器上.) step2:分发客户端软件.

第 9 部分 Informix 复制技术

第9 部分: Informix 复制技术 关于本教程 本教程讨论 IDS 11.50 提供的各种复制和高可用性技术。它解释了如何配置High Availability Data Replication (HDR)、Enterprise Replication (ER)、Remote Standalone secondary (RSS) 服务器、Shared Disk secondary (SDS) 服务器和持续日志恢复。 目标 本教程主要帮助您熟悉: ?IDS 提供的各种复制技术 ?各种复制技术之间的区别 ?不同的复制术语 ?如何设置 HDR、ER、RSS、SDS 和持续日志恢复

?容量释放:您可以将 OLTP 数据传播到备份站点,可以在报告时将用户引导到备份站点。这样,就可以在主站点上为与 OLTP 相关的用户提供更多的容量。 ?高可用性:在主站点更新数据,然后再复制到备份站点。当主站点出现故障时,备份站点将成为主站点。 ?数据合并:您可以将远程数据合并到中央服务器中。例如,您可以合并分支机构的数据。 ?分布式可用性:您可以从中央服务器将数据分布到不同位置。例如,您可以从总部将数据分发到分支机构。 ?就地更新:以点对点的方式在任意站点上更新数据,从而保持数据的一致性。 ?主服务器和备份服务器的操作系统和硬件相同。不能在不同的操作系统之间设置 HDR。

?添加到每个服务器的块的磁盘布局必须相同。必须在备份服务器上创建可用的驻留数据库块的设备,并且其 PATH 值必须与主服务器一样。这可以通过符号链接来实现。 ?HDR 主服务器和备份服务器上的 IDS 的版本必须一样。 ?必须记录数据库日志。 ?如果使用 blob 数据库类型,那么它们必须储存在 dbspace 中。将不复制存储在 dbspace 中的 blob 数据类型。 ?如果根块(chunk)被映射到主服务器,那么也必须将它映射到备份服务器。 ?HDR 使用 TCP/IP 连接。数据库服务器的名称(DBSERVERANME 配置参数的值)必须设置为 sqlhosts 文件中的 TCP/IP 连接。 ?主服务器和备份服务器都必须是可信的。为用户 informix 修改 .rhosts 或 /etc/hosts.equiv 以建立可信通信。 ?DRAUTO:DRAUTO 配置参数决定在主服务器失败时备份服务器采取什么操作。该参数的设置在主服务器和备份服务器中必须相同。需要谨慎地使用该参数。如果出现临时的网络失败,每个服务器都能感知对方宕机。对于这种情况,如果 DRAUTO 设置为 1,备份服务器将转变为标准服务器,而主服务器停止复制。客户端将分别尝试在这两个服务器上更新数据。这可能导致服务器不能保持同步。根据 DRAUTO 的设置不同,备份服务器可能执行以下操作之一: o如果 DRAUTO 设置为 0,备份服务器将保持只读状态,直至手动地将其切换为主服务器或切换到标准模式。 o如果 DRAUTO 设置为 1(RETAIN_TYPE),备份服务器在主服务器失败时自动切换为标准服务器。当 HDR 对重新启动时,该服务器 将重新切换回到备份服务器。 o如果 DRAUTO 设置为 2(REVERSE_TYPE),备份服务器在主服务器失败时自动切换成主服务器。当 HDR 对重新启动之后,该服务器 将切换为主服务器(而原先的主服务器切换为备份服务器)。 ?DRINTERVAL:DRINTERVAL 指定 HDR 数据缓冲区刷新之间的最大秒数。该参数在主服务器和备份服务器上的设置必须相同。 HDR 有两个主要操作模式:同步和异步。让我们看看更新如何从主服务器传播到备份服务器。 当主服务器开始将共享内存中的逻辑日志缓冲区的内容转储到磁盘的逻辑日志时,它同样将逻辑日志缓冲区的内容复制到一个数据复制缓冲区。

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

数据库安装配置文档

鸿蚨电子商务平台 数据库 安装配置文档
数据库安装配置 ....................................................................................................................... 2 安装流程 ............................................................................................................................... 2 1. 2. 3. 根据服务器安装配置文档,配置服务器 (略) ................................................ 2 FTP 上传数据库二进制文件 ............................................................................. 2 添加数据库用户 ................................................................................................ 2
3.1. 3.2. 添加数据库用户组 ............................................................................................... 2 添加数据库用户 ................................................................................................... 2
4.
安装 ncurses ....................................................................................................... 3
4.1. 4.2. 4.3. 4.4. 4.5. FTP 上传源码安装包 ............................................................................................ 3 解压缩源码安装包 ............................................................................................... 3 进入安装目录 ....................................................................................................... 3 配置安装变量 ....................................................................................................... 3 编译安装 ............................................................................................................... 3
5.
安装数据库 ........................................................................................................ 3
5.1. 5.2. FTP 上传 mysql 源码安装包................................................................................. 3 解压缩 mysql 压缩包 ........................................................................................... 3

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

informix安装手册

网管三期informix安装配置手册 亿阳信通股份有限公司 2003年9月

版权所有 本产品或文档受版权保护,其使用、复制、发行和反编译均受许可证限制。未经亿阳及其授权者事先的书面许可,不得以任何形式、任何手段复制本产品及其文档的任何部分。

目录 目录__________________________________________________________________________ 3第一章前言 ________________________________________________________________ 4 1.1目的______________________________________________________________________ 4 1.2内容______________________________________________________________________ 4 1.3谁应该读这本书_____________________________________________________________ 4第二章准备安装 __________________________________________________________ 5 2.1准备用户__________________________________________________________________ 5 2.2准备安装媒介_______________________________________________________________ 5 2.3准备环境变量_______________________________________________________________ 5第三章安装与配置 _______________________________________________________ 6 3.1安装Informix Online _______________________________________________________ 6 3.2 Informix系统环境设置_____________________________________________________ 6 3.3 Informix运行环境设置_____________________________________________________ 6 3.4准备数据库服务器硬盘空间___________________________________________________ 7第三章 informix client安装_________________________________________ 10附录: ______________________________________________________________________ 10

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)

windows系统下Informix_11.7安装手册

windows系统下Informix 11.7安装手册1. 概述 Informix在windows系统下的安装过程与Linux下的有些不同,这里通过实际操作,详细描述了Informix在windows系统下的安装,创建实例,配置数据库的过程. 2. 安装环境 超级用户:informix 密码:informix 一般用户:XYRZ 密码:XYRZ 实例名:ol_informix1170 端口:9088 数据库名:xydb 3 informix软件安装 得到Informix 11.7 developer edition在windows32位系统下的安装包iif.11.70.TC5DE.win2003,大小约为498MB,安装包为.zip的压缩文件。 因Informix软件需要使用Informix账户进行管理,所以在安装之前需要创建Informix用户。如果系统中没有预先创建Informix账户,则Informix Server的安装过程中将自动创建该用户,下面以没有预先创建Informix账户的环境为例,详细介绍安装过程。 1)将得到的安装包解压到合适的位置。 2)双击启动安装程序ids_install.exe,得到如下图所示安装界面,单击next按钮进入 下一步

单击“next”按钮。 4)单击next按钮后得到如下安装界面。选择合适的安装位置来安装Informix Server, 默认为:C:\Program Files\IBM\Informix\11.70。这里选择e盘下的Informix文件夹作为安装位置(e:\Informix),在地址栏里输入e:\Informix。也可以通过点击“choose” 按钮来选择安装位置或点击“Restore Default Folder”来重新使用默认安装路径。 然后单击“next”按钮。

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-ESQL/C介绍

第二章INFORMIX-ESQL/C简介

融海咨询 本章介绍INFORMIX-ESQL/C产品和它在Informix提供的应用程序开发工具集中所处的地位。 介绍INFORMIX-ESQL/C的总体概貌,使你了解该产品在应用开发过程中所起的作用。 介绍随INFORMIX-ESQL/C产品所带的示例数据库。 简短地回顾一下特定于INFORMIX的环境变量,使用户可以设置自己的环境来使用INFORMIX-ESQL/C。

融海咨询 INFORMIX-ESQL/C是一个应用开发工具,它使得构建应用程序的C程序员拥有一个访问Informix数据库的接口。 开发人员使用库、头文件和预编译器来直接在C程序中嵌入SQL 语句。 INFORMIX-ESQL/C具有众多的组织成库形式的例程来帮助用户— ●使用所有的SQL数据类型 ●解释状态消息 ●使用Informix子进程 INFORMIX-ESQL/C有时简称为ESQL/C。在本教程中,几乎无一例外地使用后一种称呼。

融海咨询 在使用ESQL/C之前,必须设置好下面的环境变量: INFORMIXDIR INFORMIX- ESQL/C所位于的目录 PATH 执行程序的搜索路径 用户可以在系统提示符下或在.profile( B shell )文件或.login( C shell )文件中设置这些变量。如果是在系统提示符下设置环境变量,则用户每次登录时要重新设置它们。如果是在.profile或.login文件中设置,则用户每次登录时,环境变量会自动被设置。 使用Bourne shell时,设置环境变量如下: INFORMIXDIR=usr/informix/; export INFORMIXDIR PATH=$INFORMIXDIR/bin:$PATH; export PATH 使用C shell时,设置如下: setenv INFORMIXDIR /usr/informix setenv PATH ${INFORMIXDIR}/bin:${PATH}当用户运行INFORMIX-OnLine时,还应当把环境变量SQLEXEC 设置为$INFORMIXDIR/lib/sqlturbo,把环境变量TBCONFIG设置为合适的值。 运行INFORMIX-NET、INFORMIX-STAR或INFORMIX-OnLine时,可能还有其它的环境变量需要设置。

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

Informix安装配置精讲

Informix-online Dynamic server完全安装手册 一、安装步骤: (1)创建informix目录: /informix 如果已创建,这一步可以不执行。 (2)创建informix用户及informix组。 (3)设置环境变量。设置环境变量在profile文件增加以下内容: INFORMIXDIR=/usr/Informix INFORMIXSERVER=pthk ONCONFIG=onconfig.pthk PATH=$PATH:$INFORMIXDIR/bin export INFORMIXDIR INFORMIXSERVER export ONCONFIG PA TH 说明: INFORMIXSERVER 该环境变量被设置为服务器的名称,它是客户机与服务器进行连接的入口,它的值将放入sqlhosts文件中,只有该值有效时客户才能完成与服务器的连接(如果客户与服务器的机型不同,则需要将sqlhosts文件同时装入所有的机器中,以便进行初始化操作)。 (4)SQL 和 online的安装 以 root 用户注册, 进入 informix 用户目录: # cd /usr/informix 执行命令: # . ./.profile 使informix 环境变量生效; SQLRT.TAR、CONNECT.CPI 、IDS.CPI 将SQL的安装文件拷贝到当前目录下:用 tar 或 cpio 命令(根据安装文件类型而定); #tar xvf (文件名.TAR) #cpio –icudvmB –I (文件名.cpi) 执行SQL的安装程序: # ./installsql 根据屏幕提示输入正确的序列号 (serial number) 和活动码 (active number); 完成SQL的安装; #./installconn 第一个选yes 第二个选no 将 online 的安装文件拷贝到当前目录下:用 tar 或cpio 命令(根据安装文件类型而定); 将安装文件展开; 执行 online 的安装程序: # ./installserver 根据屏幕提示输入正确的序列号 (serial number) 和活动码 (active number); 完成 online 的文件安装

informix数据库常用命令

informix数据库常用命令 一、onstat命令集 1、onstat - 说明:查看数据库当前的状态 用法:onstat - 2、onstat -c 说明:查看数据库的配置文件 用法:onstat -c 3、onstat -d 说明:查看数据库空间的使用情况 用法:onstat -d 4、onstat -l 说明:查看数据库逻辑日志的备份情况及逻辑日志的状态用法:onstat -l 5、onstat -m 说明:查看最近的数据库日志信息 用法:onstat -m 6、onstat -g sql 说明:查看数据库的所有客户端的连接情况 用法:onstat -g sql 7、onstat -g sql 说明:查看一个指定的客户端连接执行的SQL语句 用法:onstat -g sql

二、oncheck命令集 1、oncheck -cc [数据库名] 说明:检查一个或所有的数据库的系统目录 用法:oncheck -cc [数据库名] 2、oncheck -cD 数据库名[:表名] 说明:检查一个数据库或数据库中的一个表的数据 用法:oncheck -cD 数据库名[:表名] 3、oncheck -cI 数据库名[:表名] 说明:检查一个数据库或数据库中的一个表的索引 用法:oncheck -cI 数据库名[:表名] 4、oncheck -pt 数据库名:表名 说明:检查一个表所占用的空间大小(EXTENT数) 用法:oncheck -pt 数据库名:表名 三、备份相关命令 1、onbar 说明:备份数据库的数据或日志到磁带库中 用法: 全备份: onbar -b -w -L 0 备份逻辑日志:onbar -b -l 2、dbschema 说明:生成数据库的库表结构 用法: 整个数据库:dbschema -d 数据库名 -ss 脚本文件名 一个数据库中的表:dbschema -d 数据库名 -t 表名 -ss 脚本文件名

INFORMIX数据库操作及SQL语法

编号:TN-070101001 TIENON数据库培训教程 INFORMIX基本操作及SQL语法 2007年1月,V 1.00

目录 1、引言 (5) 1.1、读者对象 (5) 1.2、内容简介 (5) 1.3、课程时间 (5) 1.4、课程目标 (5) 2、数据库基本概念...........................................................错误!未定义书签。 2.1、从身边的例子了解数据库......................................................... 错误!未定义书签。 2.2、数据库系统概述......................................................................... 错误!未定义书签。 2.2.1、数据库的产生................................................... 错误!未定义书签。 2.2.2、数据库系统组成................................................. 错误!未定义书签。 2.2.3、与数据库相关的软件系统......................................... 错误!未定义书签。 2.2.4、数据库系统特点................................................. 错误!未定义书签。 2.2.5、数据库系统的历史............................................... 错误!未定义书签。 2.2.6、数据库系统的发展趋势........................................... 错误!未定义书签。 2.2.7、数据库的分类................................................... 错误!未定义书签。 2.3、关系数据库................................................................................. 错误!未定义书签。 2.3.1、关系数据库基本素语............................................. 错误!未定义书签。 2.3.2、数据模型....................................................... 错误!未定义书签。 2.4、数据库管理系统(DBMS) ............................................................ 错误!未定义书签。 2.4.1、DBMS功能...................................................... 错误!未定义书签。 2.4.2、DBMS组成...................................................... 错误!未定义书签。 2.4.3、数据库、表的建立............................................... 错误!未定义书签。 2.4.4、SQL............................................................ 错误!未定义书签。 3、当前流行数据库比较...................................................错误!未定义书签。 3.1.1、性能比较....................................................... 错误!未定义书签。 3.1.2、其他比较....................................................... 错误!未定义书签。 4、INFORMIX数据库安装.................................................错误!未定义书签。

ETL使用手册

ETL使用手册2007年11月8日

ETL使用手册 第一章配置文件结构 //根标签 //在目标数据库中创建数据表,纪录importDefinition标签重新启动的次数,如果存在表明会抛错. //接收参数定义 //默认JDBC连接 //执行SQL语句 //定义包含 //包含多个标签文件 //日志开头要显示的信息 //简单表复制 //导入定义 //确保字段数据唯一 //导入任务定义的JDBC连接

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