PHP + Windows で DBMS_OUTPUT を用いた プロシージャの実行

  OpenDatabase の localhost/ORCL は 10g以上



9i 以前では、ローカルネットワークサービス名を使用します( もちろん 10g でも使用可 )

  
<?php

$Oracle = new COM( "OracleInProcServer.XOraSession" );
$Cn = $Oracle->OpenDatabase("localhost/ORCL", "lightbox/lightbox", 0);


$Query = "BEGIN DBMS_OUTPUT.ENABLE(); END;";
$Cn->ExecuteSQL( $Query );

$str='';
$str.="DECLARE  \n	WK_DATA VARCHAR2(100);  \nBEGIN ";
$str.=" \n	WK_DATA := 'ABCDE'; \n	DBMS_OUTPUT.PUT_LINE(WK_DATA); ";
$str.=" \n	WK_DATA := 'XYZ'; \n	DBMS_OUTPUT.PUT_LINE(WK_DATA); ";
$str.=" \nEND;  \n  ";
$Cn->ExecuteSQL( $str );

$Cn->Parameters->Add("PARAM", 0, 2);
$Cn->Parameters["PARAM"]->ServerType = 1;
$Cn->Parameters["PARAM"]->Value = "";
$Cn->Parameters->Add("STATUS", 0, 2);
$Cn->Parameters["STATUS"]->ServerType = 2;
$Cn->Parameters["STATUS"]->Value = "";
		
$Query = "BEGIN DBMS_OUTPUT.GET_LINE(:PARAM,:STATUS); END;";
$Cn->ExecuteSQL( $Query );
		
while( $Cn->Parameters["STATUS"]->Value == 0 ) {
	print $Cn->Parameters["PARAM"]->Value . "<br>\n";
	$Cn->ExecuteSQL( $Query );
}
		
$Cn->Parameters->Remove("STATUS");
$Cn->Parameters->Remove("PARAM");


$Cn->Close();

?>
  














  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ