oracle中plsql的下拉列表没有选项是怎回事如下图,求指导谢谢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中plsql的下拉列表没有选项是怎回事如下图,求指导谢谢?相关的知识,希望对你有一定的参考价值。

你在安装Oracle客户端时,没有配置与Oracle服务器的连接。
把与Oracle服务器的连接配置到tnsnames.ora文件里。
然后,再启动这个第三方工具就可以看到选项了。追问

该怎么配置呢?

追答

Oracle服务器的地址,DB名,端口号。

参考技术A 需要先配置tns,才能在下拉列表里看见

在plsql中构建组子组下拉列表

【中文标题】在plsql中构建组子组下拉列表【英文标题】:Building group-subgroup dropdown list in plsql 【发布时间】:2017-05-29 08:43:00 【问题描述】:

我有一张表,其中包含 IDGROUP_NAMEPARENT_GROUP_ID。我正在尝试创建两个下拉列表:首先将具有 parent_group_id 为空的所有组名,在选择第一个 ddl(或仅选择默认值)之后,第二个 ddl 中的值都应该具有PARENT_GROUP_ID 列等于第一个选定组的 ID。到目前为止,我已经创建了带有 2 个弹出列表的数据块,并且在“when-new-form-instance”上,我正在使用

填充第一个 ddl
DECLARE
 rg_groups RecordGroup; 
 rg_group_name VARCHAR2(5) := 'GNAME'; 
 plist_ID Item := Find_Item(':GROUPS.GROUP_NAME'); 
 nDummy NUMBER;
BEGIN 
  rg_groups := Find_Group(rg_group_name); 
 -- Delete any existing Group first 
  IF NOT Id_Null(rg_groups) THEN 
    Delete_Group(rg_groups); 
  END IF;
 -- Now create a Record Group using a SQL query 
  -- Your Query must have a Label and a Value (two Columns) 
  -- and the data types must match your item type 
  rg_groups := Create_Group_From_Query(rg_group_name,'SELECT group_name, 
  to_char(ID) FROM GROUPS WHERE PARENT_GROUP_ID IS NULL'); 
  -- Clear the existing List 
  Clear_List(plist_ID); 
  -- Populate the Record Group 
  nDummy := Populate_Group(rg_groups); 
  -- Populate the List Item 
  Populate_List(':GROUPS.GROUP_NAME',rg_groups);
END;

在第一个 poplist 项的“post-change”触发器上,填充第二个 ddl:

DECLARE
 rg_groups RecordGroup; 
 rg_group_name VARCHAR2(5) := 'GPARENT_NAME'; 
 plist_ID Item := Find_Item(':GROUPS.PARENT_GROUP_ID'); 
 nDummy NUMBER;
BEGIN 
  rg_groups := Find_Group(rg_group_name); 
  -- Delete any existing Group first 
  IF NOT Id_Null(rg_groups) THEN 
    Delete_Group(rg_groups); 
  END IF;
   -- Now create a Record Group using a SQL query 
   -- Your Query must have a Label and a Value (two Columns) 
   -- and the data types must match your item type 
   rg_groups := Create_Group_From_Query(rg_group_name,'SELECT group_name, to_char(ID) FROM GROUPS WHERE PARENT_GROUP_ID = ' || :GROUPS.ID); 
   -- Clear the existing List 
   Clear_List(plist_ID); 
 -- Populate the Record Group 
 nDummy := Populate_Group(rg_groups); 
 -- Populate the List Item 
 Populate_List(':GROUPS.PARENT_GROUP_ID',rg_groups);
END;

但是我感觉WHERE PARENT_GROUP_ID = ' || :GROUPS.ID这部分是错误的,因为我连ID都没填,需要从之前的ddl中提取出来,这就是我卡住的地方,不太明白怎么弄这适用于甲骨文形式。希望能得到一些通俗易懂的建议,谢谢!

【问题讨论】:

也是rg_group_name 的长度有问题,应该长一点 【参考方案1】:

一个弹出列表通常有两列 - 显示的标签和存储到项目的值。

您的第一个弹出列表位于 GROUPS.GROUP_NAME 项目上,显示组名并存储组 ID。这意味着当用户选择一个组时,它的 id 存储到 GROUPS.GROUP_NAME 并且您的第二个弹出列表填充了错误的值。

只需从 GROUPS.GROUP_NAME 中删除您的第一个弹出列表并在 GROUPS.ID 项目上创建它。

顺便说一句:当您按名称引用项目时,不要使用冒号。 Find_Item(':GROUPS.GROUP_NAME') 不好,Find_Item('GROUPS.GROUP_NAME') 是正确的。

【讨论】:

hm 我明白你的意思,但是 poplist 如何理解我需要显示组的名称并具有 id 的值而不是显示 id? 这取决于选择中的列顺序 - 第一个是标签,第二个是值

以上是关于oracle中plsql的下拉列表没有选项是怎回事如下图,求指导谢谢?的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE中用PLSQL如何把.DMP文件导入到库中?

ORACLE中用PLSQL如何把.DMP文件导入到库中?

oracle PL/SQL里面, tnsnames.ora文件里面配置了之后, 在下拉列表框里面没有显示

PLSQL基本操作手册

plsql连接不上oracle,没有报错信息,一直登录不上

我在安装配置完Oracle和PL/SQL后,为啥plsql的database一栏没有可选项?