如何以oracle形式从主表中搜索数据?

时间:2018-08-13 10:44:56

标签: oracle oracle10g oracleforms

我正在创建10g的表格

  • 3个非LOV字段非数据库
  • 具有LOV的表格形式数据库块
  • 搜索按钮

我将主表存储在数据库中,并创建了另一个表以仅存储3个主表中的主键值。我想从主表中搜索数据

在搜索按钮代码中:

SET_BLOCK_PROPERTY('BLOCK_NAME',
                    default_where,
                   'COLUMN_NAME=' ||''''|| NVL(:BLOCK_NAME.FIELD_NAME, 0) ||''''
                  );
EXECUTE_QUERY;

按下按钮时显示错误无效数字,因为我创建的另一个表存储了我要从主表中搜索数据的主键值

请帮助

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的描述。那张“另一张桌子”是用来做什么的?好的,您存储3个“主”表中的主键,但是-为什么?

无论如何:如果FIELD_NAME是数字,那么将NVL应用于它并将NULL转换为0(零)是有意义的,但是-如果它是不是,那可能是个问题(*)。

这就是您使用的所有单引号所建议的-FIELD_NAME是一个字符字段,因此您将其值括在单引号中。很难引用这么多引号,所以-为什么不切换到更简单的名称,例如

'column_name=' || chr(39) || :block_name.field_name || chr(39)

其中chr(39)表示单引号。

要继续使用NVL可能出现的问题(*):如果是这种情况,请考虑使用其他语法,并避免使用NVL

'column_name=' || chr(39) || :block_name.field_name || chr(39) ||
                   ' or ' || :block_name.field_name || ' is null'