我正在为 PSP 设置 Oracle。我已经做了以下事情。
在 DBA 帐户上
EXEC DBMS_EPG.CREATE_DAD('SCOTT_DAD', '/plsql/*');
EXEC DBMS_EPG.SET_DAD_ATTRIBUTE('SCOTT_DAD', 'database-username', 'SCOTT');
GRANT EXECUTE ON DBMS_EPG TO SCOTT;
在斯科特
EXEC DBMS_EPG.AUTHORIZE_DAD('SCOTT_DAD');
在 Scott 上创建了一个名为 print_employees 的程序来打印员工姓名。
CREATE OR REPLACE PROCEDURE print_employees IS
CURSOR emp_cursor IS
SELECT EMPNO, ENAME
FROM EMP
ORDER BY EMPNO;
BEGIN
HTP.PRINT('<html>');
HTP.PRINT('<head>');
HTP.PRINT('<meta http-equiv="Content-Type" content="text/html">');
HTP.PRINT('<title>List of Employees</title>');
HTP.PRINT('</head>');
HTP.PRINT('<body TEXT="#000000" BGCOLOR="#FFFFFF">');
HTP.PRINT('<h1>List of Employees</h1>');
HTP.PRINT('<table width="40%" border="1">');
HTP.PRINT('<tr>');
HTP.PRINT('<th align="left">Last Name</th>');
HTP.PRINT('<th align="left">First Name</th>');
HTP.PRINT('</tr>');
FOR emp_record IN emp_cursor LOOP
HTP.PRINT('<tr>');
HTP.PRINT('<td>' || emp_record.EMPNO || '</td>');
HTP.PRINT('<td>' || emp_record.ENAME || '</td>');
END LOOP;
HTP.PRINT('</table>');
HTP.PRINT('</body>');
HTP.PRINT('</html>');
END;
/
但不幸的是,当我用链接测试它时
https://localhost:port#/plsql/print_employees/
我使用的是准确的端口号,我确信这一点,因为我的 EM 运行在同一端口上,并且监听器也启动了,因为我可以访问数据库和 EM。
如果我缺少任何东西,请帮助我?