netmanager测试成功但是pl/plus连不上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了netmanager测试成功但是pl/plus连不上相关的知识,希望对你有一定的参考价值。

参考技术A 安装了ORACLE的客户端软件。
测试连接成功但是用pl和plus连接不上,提示无法解析指定的连接标识符是因为安装了ORACLE的客户端软件,并且你只在该程序下配置服务,没有在该程序的客户端安装程序下配置服务,所以这是导致连不上的根本原因。
解决方法:首先打开oracle客户端下的NetConfigurationAssistant,这是一个监听,如果没有监听要建立一个监听,其次打开oracle客户端下的NetManager创建服务,创建的方法和oracle软件下建的方法一样,最后再次打开pl和plus后,就会发现数据库的下拉列表多了刚才建立的数据库,显示这个证明已经连接成功。

无输出,仅显示“PL/SQL 过程已成功完成”

【中文标题】无输出,仅显示“PL/SQL 过程已成功完成”【英文标题】:No output, just showing "PL/SQL procedure successfully completed" 【发布时间】:2019-07-21 16:04:01 【问题描述】:

我正在从 3 个表中设置一个新游标,并在代码中循环。但经过一整天的尝试,没有错误,没有警告,但我的输出只是显示“PL/SQL 过程已成功完成。”,没有别的。

我尝试更改我的变量,SET SERVEROUTPUT ON、SET VERIFY OFF 等,但没有任何显示,就像我第一次尝试一样。

SET SERVEROUTPUT ON
DECLARE
V_PROD GD_INBAG%ROWTYPE;
V_OUT OUT_INBAG%ROWTYPE;
V_IN IN_INBAG%ROWTYPE;
V_NOMER NUMBER(8,0):=0;
CURSOR DATA_GUDANG IS
SELECT A.ID_PROD, A.NAMA_PROD, A.STOK_PROD, B.IN_PROD, C.OUT_PROD
FROM GD_INBAG A, IN_INBAG B, OUT_INBAG C
WHERE A.ID_PROD=B.ID_PROD AND A.ID_PROD=C.ID_PROD
ORDER BY A.ID_PROD;
BEGIN
OPEN DATA_GUDANG;
LOOP
FETCH DATA_GUDANG INTO V_PROD.ID_PROD, V_PROD.NAMA_PROD, `V_PROD.STOK_PROD, V_OUT.OUT_PROD, V_IN.IN_PROD;`
EXIT WHEN DATA_GUDANG%NOTFOUND;
V_NOMER :=V_NOMER+1;

DBMS_OUTPUT.PUT_LINE ('NUMBER        : '||' '||V_NOMER);
DBMS_OUTPUT.PUT_LINE ('PRODUCT ID    : '||' '||V_PROD.ID_PROD);
DBMS_OUTPUT.PUT_LINE ('PRODUCT NAME  : '||' '||V_PROD.NAMA_PROD);
DBMS_OUTPUT.PUT_LINE ('STOCK         : '||' '||V_PROD.STOK_PROD);
DBMS_OUTPUT.PUT_LINE ('OUT PRODUCT   : '||' '||V_OUT.OUT_PROD);
DBMS_OUTPUT.PUT_LINE ('IN PRODUCT    : '||' '||V_IN.IN_PROD);
DBMS_OUTPUT.PUT_LINE ('=========================================================');
END LOOP;
CLOSE DATA_GUDANG;
END;

我希望我的代码输出显示基于 ID_PROD 并按 ID_PROD 排序的所有数据(编号、ID、产品名称、库存、产品进出)。

【问题讨论】:

SQL Developer 有一个单独的 DBMS_OUTPUT 窗口。您需要选择菜单 View > DBMS_OUTPUT,然后为要显示的连接打开一个选项卡。你做到了吗? 您是从任何其他 PL/SQL 代码中获得 dbms_output,还是仅此特定代码有问题? @APC 那在哪里?我不知道,但是,如果我只编写与其他表没有关系的代码就好了,比如编写代码说“hello World”等。 @william 不,我做了一些程序和函数也需要 DBMS_OUTPUT.PUT_LINE,它很好,但是当我尝试做一些光标时,它不会显示输出跨度> 那么游标可能没有返回任何行。 【参考方案1】:

您的光标似乎没有获取任何信息。

如果光标下方将打开,则将显示任何数据,否则将不显示任何结果 打开数据_古当; 环形 将 DATA_GUDANG 提取到 V_PROD.ID_PROD、V_PROD.NAMA_PROD、 V_PROD.STOK_PROD, V_OUT.OUT_PROD, V_IN.IN_PROD; DATA_GUDANG%NOTFOUND 时退出; V_NOMER :=V_NOMER+1;

 DBMS_OUTPUT.PUT_LINE ('NUMBER        : '||' '||V_NOMER);
 DBMS_OUTPUT.PUT_LINE ('PRODUCT ID    : '||' 
  '||V_PROD.ID_PROD);
 DBMS_OUTPUT.PUT_LINE ('PRODUCT NAME  : '||'. 
 '||V_PROD.NAMA_PROD);
 DBMS_OUTPUT.PUT_LINE ('STOCK         : '||' 
 '||V_PROD.STOK_PROD);
DBMS_OUTPUT.PUT_LINE ('OUT PRODUCT   : '||' 
 '||V_OUT.OUT_PROD);
DBMS_OUTPUT.PUT_LINE ('IN PRODUCT    : '||' '||V_IN.IN_PROD);
DBMS_OUTPUT.PUT_LINE 
  ('=========================================================');
 END LOOP;
 CLOSE DATA_GUDANG;
END;

【讨论】:

以上是关于netmanager测试成功但是pl/plus连不上的主要内容,如果未能解决你的问题,请参考以下文章

pl/sql developer 登陆时 出现"ORA-12154: TNS:无法解析指定的连接标 ”!我在cmd里就能连接上。

转:PL/SQL在 win8.1系统下连接Oracle11g没有database处理方法

oracle 11gr2安装成功,应该安装哪个版本的pl/sql配套使用,我系统是win7/64位的

PL/SQL连接Oracle,提示ORA-12504:TNS监听程序在connect-data中未获得service-name

pl/sql连接oracle数据库tables里面不显示表。

PL/SQL中测试存储过程,如何立即输出DBMS_OUTPUT的语句。