2017-03-17 55 views
0

我試圖合併一些數據到一個oracle數據庫,但我無法設法讓它工作。 我嘗試了很多組合,但沒有成功。 這裏是我的簡單的代碼使用php合併到oracle數據庫

`

$sql ="MERGE INTO test IG"; 
$sql .=" USING (SELECT 'test' as rep,'test'as usr FROM dual) po"; 
$sql .=" on (ig.report= po.rep and ig.utente=po.usr)"; 
$sql .=" WHEN MATCHED THEN UPDATE SET ig.datamod = sysdate, ig.giorni_utilizzo = ig.giorni_utilizzo + 1 where ig.datamod > sysdate"; 
$sql .=" WHEN NOT MATCHED THEN INSERT (ig.report,ig.utente, ig.datains, ig.datamod, ig.giorni_utilizzo)"; 
$sql .=" VALUES (po.rep, po.usr, sysdate, sysdate, 1);"; 

#$sql ="insert into test IG (report, utente, datains, datamod, giorni_utilizzo) values('prova','prova',sysdate,sysdate,1)"; 




$stid = OCIParse($conn, $sql); 

echo $sql; 

$res = OCIExecute($stid); 

if($res){ 
echo "OK"; 
} else { 
echo "KO"; 
}` 

的連接是沒有問題的,因爲我嘗試插件和它的作品。

如果我在gui上運行查詢,它會工作,所以我認爲代碼是正確的。我收到警告:ORA-00911:這一行中的無效字符「$ res = OCIExecute($ stid);」

有人能告訴我我在哪裏錯了嗎? 謝謝

回答

0

我發現了這個問題。 here: $ sql。=「VALUES(po.rep,po.usr,sysdate,sysdate,1);」; 而不是 $ sql。=「VALUES(po.rep,po.usr,sysdate,sysdate,1)」; 我不必把「;」在查詢結束時