是否可以在SQL的存储过程中声明一个数组变量?

时间:2015-10-07 05:50:28

标签: mysql sql plsql

我尝试使用下面的代码,但是它抛出了一个错误。

DECLARE TYPE INPUTVALUES IS VARRAY(5) OF VARCHAR(10);

是一种在存储过程中声明数组变量的方法。

2 个答案:

答案 0 :(得分:2)

据我所知,关系数据库没有阵列。它们通常用于标量值。

  

有没有办法在存储过程中声明数组变量。

这或多或少地与你想要实现的目标相关。关于如何实现数组排序的示例可以是:

SET @myArray = 'test1,test2,test3'; -- Treat it like an array

SELECT * FROM myTable
WHERE FIND_IN_SET (columnName, @arr);

这是针对MySQL的

答案 1 :(得分:1)

它可能。您的代码应该像这样编写

TYPE input_values IS TABLE OF VARCHAR2  -- Associative array type
INDEX BY PLS_INTEGER;                  --  indexed by string

v_array  input_values;              -- Associative array variable
i  VARCHAR2(64);                    -- Scalar variable

注意:

  •   

    如果要在存储过程中声明一个数组变量,则不需要在内部编写DECLARE   块。

  •   

    如果您使用的是ORACLE RDBMS,它通常称为ASSOCIATIVE ARRAYS。您可以阅读更多 here