was*_*256 3 oracle plsql varray
我有这样的类型声明:
FUNCTION ...
IS
TYPE stati_va IS VARRAY (10000) OF varchar(1);
stati stati_va;
v_counter INTEGER := 0;
BEGIN
stati := stati_va ();
--this is actually in a loop so the array contains more values
v_counter := v_counter + 1;
stati.EXTEND;
stati (v_counter) := '4';
--here I would like to determine if the array 'stati' contains a value
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了以下但是这给了我一个错误
IF '4' member of stati then <- COMPILE error
IF '4' IN stati then <- COMPILE error
Run Code Online (Sandbox Code Playgroud)
我知道循环数组是可能的,但这有点不方便,因为我需要构建这样的东西:
IF array contains '4' then
elsif array contains '3' then
elseif array contains '2' then
...
Run Code Online (Sandbox Code Playgroud)
你可以使用这个条件:
IF 'element' member OF <my_array> THEN
Run Code Online (Sandbox Code Playgroud)
例如,
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 TYPE v_array
3 IS
4 TABLE OF VARCHAR2(200);
5 my_array v_array;
6 BEGIN
7 my_array := v_array('1','2','3','4');
8 IF '4' member OF my_array THEN
9 dbms_output.put_line('yes');
10 ELSE
11 dbms_output.put_line('no');
12 END IF;
13 END;
14 /
yes
PL/SQL procedure successfully completed.
SQL>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9929 次 |
| 最近记录: |