2013-06-18 35 views
1

我在嘗試執行由連接幾個變量形成的sql時出現以下錯誤。Perl DBD :: ODBC不支持綁定一個命名參數不止一次

DBD :: ODBC還不支持綁定命名參數不止一次

我可以從SQL執行提示相同的SQL沒有任何問題!

我的代碼都喜歡這樣的:(DBI連接,日期時間$格式,使用前面步驟中已經創建的所有變量)

$sql = ""; 
my $param1 = $format->parse_datetime($dateval->ymd('-')); 
$param1->add(days => 1); 
$sql = crt_view($param1,$param2,$param3,$param4); #crt_view is function which will return a segment of my sql for the parameters passed 
$sqlins = "create or replace view v_tabl_xxx as ".$sql; 
$sth = $dbi->prepare($sqlins); 
$sth->execute() or die("[ERROR] : \n\t$DBI::errstr\n"); 
+1

'$ sql'的值是什麼? – mob

+0

$ sql從函數crt_view(arg1,arg2,arg3,arg4), 獲取值,$ sql中的最終值是視圖的DDL,它在沒有來自sql編輯器的任何問題的情況下工作。你的參考值是這樣的: ** CREATE OR REPLACE VIEW v_tabl_xxx AS SELECT id,mid,NVL(val,' - 1')AS val,「TIME」,EXP(-1.0 *(MINUTES_BETWEEN(「TIME 「,'2013-05-26'))/ 1440):: REAL AS delay FROM tabl_xxx_201303 WHERE」TIME「> ='2013-03-05'UNION ALL SELECT id,mid,NVL(val,' - 1') AS val,「TIME」,EXP(-1.0 *(MINUTES_BETWEEN(「TIME」,'2013-05-26'))/ 1440):: REAL AS延遲FROM tabl_xxx_201304 ** – MikA

回答

2

聽起來像在解釋你的SQL的一部分,命名佔位符,當它不該「T。 嘗試做

$dbi->{odbc_ignore_named_placeholders} = 1; 

第一。

+0

您能解釋什麼是dbh?我沒有在腳本中的任何地方使用它 – MikA

+0

它在我的腳本中是否是dbi? – MikA

+0

對不起,是的,$ dbi – ysth

相關問題