Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle PL/SQL - Как да създадете обикновена променлива от масив?

Можете да използвате VARRAY за масив с фиксиран размер:

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t('Matt', 'Joanne', 'Robert');
begin
   for i in 1..array.count loop
       dbms_output.put_line(array(i));
   end loop;
end;

Или ТАБЛИЦА за неограничен масив:

...
   type array_t is table of varchar2(10);
...

Думата "таблица" тук няма нищо общо с таблиците на базата данни, объркващо. И двата метода създават масиви в паметта.

С което и да е от тях трябва както да инициализирате, така и да разширите колекцията, преди да добавите елементи:

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t(); -- Initialise it
begin
   for i in 1..3 loop
      array.extend(); -- Extend it
      array(i) := 'x';
   end loop;
end;

Първият индекс е 1, а не 0.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Примери за конкатенация на низове и числа на Oracle

  2. как да изберете списък с 10 000 уникални идентификатори от двойни в oracle SQL

  3. Как да декларирате и покажете променлива в Oracle

  4. Какъв е максималният размер на VARCHAR2 в PL/SQL и SQL?

  5. Oracle PL/SQL:Проверете дали BLOB или CLOB са празни