2015-10-20 160 views
1

我使用ast_update_realtime()更新到PostgreSQL數據庫。如何將PostgreSQL數據庫時間戳更新爲星號中的空值?

res = ast_update_realtime("confinfo", "id", "01", "start_time", "NULL", SENTINEL); 

但我得到這樣的錯誤:

[Oct 20 15:44:50] ERROR[30428][C-00000000]: res_config_pgsql.c:169 _pgsql_exec: PostgreSQL RealTime: Query Failed because: ERROR: invalid input syntax for type timestamp with time zone: "NULL" 
LINE 1: UPDATE confinfo SET start_time = 'NULL' WHERE id = '01' 
             ^
(PGRES_FATAL_ERROR) 

我發現原因是 「NULL」,而不是在SQL字符串NULL。 我該如何糾正它?

回答

0

而是提供NULL值的你可以嘗試把空字符串像''或者乾脆

res = ast_update_realtime("confinfo", "id", "01", "start_time", NULL, SENTINEL); 
+0

@GSP: - 當然,歡迎您! –

+0

@GSP:試試這個:'res = ast_update_realtime(「confinfo」,「id」,「01」,「start_time」,「」,SENTINEL);' –

+0

我得到了同樣的錯誤(它只是改變了'NULL' ''在SQL字符串中)。 – GSP

0
UPDATE confinfo SET start_time = NULL WHERE id = '01' 

UPDATE confinfo SET start_time = 'NULL' WHERE id = '01'

代替你應該傳遞NULL沒有""

+0

我知道這一點,但我不直接通過PostgreSQL使用,我使用ast_update_realtime()的值爲「NULL」字符串。當Asterisk將它轉換爲SQL字符串時,「NULL」字符串爲'NULL'(單引號)。我怎樣才能刪除這個報價? – GSP

+0

@GSP你可以像'res = ast_update_realtime(「confinfo」,「id」,「01」,「start_time」,NULL,SENTINEL)那樣通過'NULL';' –

+0

ast_update_realtime()函數將會以NULL結尾(SENTIEL爲NULL)。如果我沒有引用NULL傳遞,我得到分段錯誤(核心轉儲) – GSP

相關問題