我想用ecpg主变量在psql表中插入一个空值,但我不知道如何做到这一点,这是一个简单的例子:
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”工作正常,但似乎不是一个好方法。
*我知道它可以通过指标来确定变量是否为空 http://www.postgresql.org/docs/8.3/static/ecpg-variables.html 但它没有告诉我如何使用此方法插入或更新值?
答案 0 :(得分:0)
yooooo
我试过“插入”也可以使用指标,如果你想这样:
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,只需创建指标< 0:
var1_ind = -1
在为var1_ind分配-1之后,它会在数据库中向var1插入NULL,其值为:var1
这是手册中的一些信息
如果值不为null,则指标变量val_ind将为零, 如果值为null,则为负数。
指标有另一个功能:如果指标值是 肯定的,这意味着该值不为null,但它被截断 当它存储在主变量中时。