0

我正在为 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。

如果我缺少任何东西,请帮助我?

4

0 回答 0