ecpg 使用主机变量插入空值 (postgreSQL)
ecpg insert null with host variable (psotgreSQL)
我想用 ecpg 主机变量向 psql table 插入一个空值,但我不知道该怎么做,下面是一个简单的例子:
EXEC SQL BEGIN DECLARE SECTION;
char var1;
int var2;
EXEC SQL END DECLARE SECTION;
int main(){
EXEC SQL CONNECT TO .....
create();
insert();
EXEC SQL COMMIT WORK;
return 0;
}
void create(){
CREATE TABLE mytable(var1 char(10), var2 int );
}
void insert(){
EXEC SQL INSERT INTO mytable (var1, var2 ) VALUE (:var1, :var2);
}
我想在数据库中的 var1 和 var2 中插入 NULL,有谁知道如何使用主机变量 (:var1, :var2)
*将":var1"替换为"NULL"效果很好,但似乎不是一个好方法。
*我知道它可以通过指标判断变量是否为null
http://www.postgresql.org/docs/8.3/static/ecpg-variables.html
但它没有告诉我如何使用此方法插入或更新值?
呜呜呜
我试过 "insert" 也可以使用指标,如果你喜欢这个:
short var1_ind, var2_ind;
void insert(){
EXEC SQL INSERT INTO mytable (var1, var2 )
VALUE (:var1 INDICATOR :var1_ind, :var2 INDICATOR :var2_ind);
}
如果要在var1中插入NULL,只需使indicator < 0:
var1_ind = -1
将-1赋给var1_ind后,无论:var1的值是多少,它都会将NULL插入到DB中的var1中
这是手册中的一些信息
The indicator variable val_ind will be zero if the value was not null,
and it will be negative if the value was null.
The indicator has another function: if the indicator value is
positive, it means that the value is not null, but it was truncated
when it was stored in the host variable.
我想用 ecpg 主机变量向 psql table 插入一个空值,但我不知道该怎么做,下面是一个简单的例子:
EXEC SQL BEGIN DECLARE SECTION;
char var1;
int var2;
EXEC SQL END DECLARE SECTION;
int main(){
EXEC SQL CONNECT TO .....
create();
insert();
EXEC SQL COMMIT WORK;
return 0;
}
void create(){
CREATE TABLE mytable(var1 char(10), var2 int );
}
void insert(){
EXEC SQL INSERT INTO mytable (var1, var2 ) VALUE (:var1, :var2);
}
我想在数据库中的 var1 和 var2 中插入 NULL,有谁知道如何使用主机变量 (:var1, :var2)
*将":var1"替换为"NULL"效果很好,但似乎不是一个好方法。
*我知道它可以通过指标判断变量是否为null http://www.postgresql.org/docs/8.3/static/ecpg-variables.html 但它没有告诉我如何使用此方法插入或更新值?
呜呜呜
我试过 "insert" 也可以使用指标,如果你喜欢这个:
short var1_ind, var2_ind;
void insert(){
EXEC SQL INSERT INTO mytable (var1, var2 )
VALUE (:var1 INDICATOR :var1_ind, :var2 INDICATOR :var2_ind);
}
如果要在var1中插入NULL,只需使indicator < 0:
var1_ind = -1
将-1赋给var1_ind后,无论:var1的值是多少,它都会将NULL插入到DB中的var1中
这是手册中的一些信息
The indicator variable val_ind will be zero if the value was not null, and it will be negative if the value was null.
The indicator has another function: if the indicator value is positive, it means that the value is not null, but it was truncated when it was stored in the host variable.