在没有指定索引的SELECT语句中使用本地表类型

托兰

有什么方法可以在SELECT语句的IN子句中使用本地表类型,而无需指定表类型的索引?

DECLARE
    TYPE temp_rec_TYPE IS RECORD (
        n_temp_id NUMBER
    );

    TYPE temp_tab_TYPE IS TABLE OF temp_rec_TYPE INDEX BY PLS_INTEGER;
    temp_tab temp_tab_TYPE;

    n_temp_id2 NUMBER;
BEGIN
    temp_tab(1).n_temp_id := 1;

    FOR temp_rec IN (SELECT * FROM example_table WHERE id IN temp_tab)
    LOOP
        NULL;
    END LOOP;
END;

执行返回“ PLS-00382:表达式类型错误”

MT0

不,SQL表达式只能引用在SQL范围(不是PL / SQL范围-即不在包或PL / SQL块中)中生成的类型。

您想要的是这样的:

CREATE TYPE number_list IS TABLE OF NUMBER;
/

DECLARE
  temp_tab number_list;
BEGIN
  temp_tab := number_list( 1 );

  FOR temp_rec IN (SELECT * FROM example_table WHERE id MEMBER OF temp_tab)
  LOOP
    NULL;
  END LOOP;
END;
/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Oracle 的 SELECT 语句中使用索引

在SELECT语句中使用表类型

在没有 GROUP by 的选择语句中使用 sum

在选择语句中使用类型“ is table of”

在select语句中使用WHERE子句

在带有数组索引的if语句中使用JRadioButton的正确方法是什么?

有没有办法在打印语句中使用 for 循环?

SQL:有没有办法在同一个 SELECT 语句中使用新的/用户定义的变量?

如何在IF语句中使用Jenkins本地定义的变量?

访问-使用链接表(但没有主键)更新本地表

在具有不同数据类型的ORDER BY子句中使用CASE语句

在#include语句中使用垃圾字符没有编译器错误

在Oracle中的select语句中使用select

在MySQL的嵌套Select语句中使用Select数据

有什么方法可以在SQL Select语句中使用JSON对象中的值?

具有 oneToMany 关系的实体的休眠查询(在 select 语句中使用子查询)

当多表的 select 语句中没有行时设置 0

如何在UPDATE语句中使用IF类型结构?

打字稿:在条件语句中使用条件类型

如何在if语句中使用数据类型

如何使用MySql在sql语句中使用SELECT CASE

如何在我的过程中使用 where 语句,在 select 语句中已经带有双引号?

Swift 2:有没有办法在带有关联值的enum的switch语句中使用“默认”?

有没有一种方法可以在sql中的where子句中使用case语句使用or或=?

oracle select语句中如何使用表类型

如何在MySQL的INSERT语句中使用SELECT MAX?

在 SELECT 语句中使用解码的 SQL 语言编程

在Case Select语句中使用数组作为参数

在雄辩的select语句中使用SQL函数