ecpg与主变量插入null(postgreSQL)

时间:2015-03-27 02:22:20

标签: sql postgresql insert null ecpg

我想用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 但它没有告诉我如何使用此方法插入或更新值?

1 个答案:

答案 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,但它被截断   当它存储在主变量中时。