ここでは奇妙な問題に直面しています。sqldeveloperとjavaでは正常に動作するoracleストアドプロシージャを使用しようとしますが、PHPでは動作しません。ORACLEストアドプロシージャはSQL Developerで動作しますが、PHPでは動作しません
私は、クエリをこのように実行しています:
//$rqt_date = "SELECT DECODE(1, NULL, 1, 33, '1', 44) as test FROM DUAL";
$rqt_date = "SELECT DATEPARAM('23/06/2016') as date_1900 FROM DUAL";
$parsed = ociparse($db_link, $rqt_date);
oci_execute($parsed,OCI_NO_AUTO_COMMIT);
while (($row = oci_fetch_array($parsed, OCI_BOTH)) != false)
{
print_r($row);
}
私がコメントし$rqt_date
(デコード)を使ってテスト:私は
Array
(
[0] => 44
[TEST] => 44
)
結果を得るしかし、私はDATEPARAM
を使用するとき、私は値として0を取得42542の代わりに(1900年以降の日数):
Wha tは私がのsqldeveloperで取得:
私はPHPのログにエラーを持っていません。
私のサーバーに関する情報: PHPバージョン5.3.8 システムWindows NT BOWSER 6.1ビルド7601(のWindows Server 2008 R2 Standard Editionのサービスパック1)のi586
SQL文でプロシージャを使用することはできません。 PL/SQLブロック内にある必要があります。プロシージャではなくストアド関数ではないと確信していますか? – MT0
'DATEPARAM'関数のソースコードを投稿できますか? – MT0
'23/06/2016 'の代わりにto_date('23/06/2016'、 'dd/mm/yyyy' – Mottor