CREATE OR REPLACE PACKAGE BODY simpleState IS
PROCEDURE selectFromTable(tableName VARCHAR2, columnName VARCHAR2) IS
TYPE c1 IS TABLE OF VARCHAR2(30);
Notes c1;
BEGIN
EXECUTE IMMEDIATE 'Select ' || columnName || ' FROM ' || tableName BULK COLLECT INTO Notes;
FOR idx IN Notes.FIRST .. Notes.LAST LOOP
DBMS_OUTPUT.PUT_LINE(Notes(idx));
END LOOP;
END selectFromTable;
$conn = oci_connect("student", "STUDENT", "localhost");
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
else {
print "Connected to Oracle!";
}
if(isset($_POST["readSubmit"])){
$table = $_POST['ReadTableName'];
$column = $_POST['ReadColumn'];
$stid = oci_parse($conn, 'begin simpleState.selectFromTable(:a,:b); end;');
ocibindbyname($stid, 'a', $table);
ocibindbyname($stid, 'b', $column);
if (!$stid) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$r = oci_execute($stid);
echo "$r";
oci_free_statement($stid);
oci_close($conn);
}
?>
我試圖在使用PHP的瀏覽器中的DBMS_OUPUT.PUT_LINE中顯示消息。但它不顯示任何東西。 PL/SQL代碼工作並顯示它必須在SQL Developer中顯示的內容。誰能幫我這個?在oracle中獲取來自oracle的dbms輸出消息
你爲什麼要這麼做? DBMS_OUTPUT通常只用於adhoc消息 - 例如。用於測試目的 - 而不是將數據從一個系統傳遞到另一個系統的方法。如果我是你,我會調查ref遊標 - 這是將select語句中的數據傳回給調用代碼的首選解決方案。 – Boneist
那麼,需要一個快速的解決方案來集成一個用戶界面的pl/sql過程(像html頁面一樣簡單) – student0495
哦,我已經嘗試過ref遊標.... – student0495