Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PL/SQL - tablice
Forum PHP.pl > Forum > Bazy danych > Oracle
janq79
Witajcie.

zaczynam zgłębiać tajniki pl/sql - na razie jestem jeszcze raczej zielony.

mam zainstalowane na kompie: Oracle Database 10g Express Edition - z testowym schematem bazy danych - HR.
na tym schemacie sobie ćwiczę...

utknąłem na następującym ćwiczeniu:

Stworzyć tablicę moja_tablica i przekopiować do niej wszystkie dane z tablicy
employees.

próbuję to zrobić tym sposobem:

  1. declare
  2. type tablica IS TABLE of employees%rowtype;
  3. moja_tablica tablica;
  4. cursor kursor IS SELECT * FROM employees;
  5. i integer;
  6. begin
  7. i:=0;
  8. open kursor;
  9. loop
  10. i:=i+1;
  11. fetch kursor INTO moja_tablica(i);
  12. exit when kursor%notfound;
  13. close kursor;
  14. end loop;
  15. end;



dostaję następujący błąd:


Error report:
ORA-06531: Reference to uninitialized collection
ORA-06512: at line 11
06531. 00000 - "Reference to uninitialized collection"
*Cause: An element or member function of a nested table or varray
was referenced (where an initialized collection is needed)
without the collection having been initialized.
*Action: Initialize the collection with an appropriate constructor
or whole-object assignment.

czyli - dowiązanie do niezainicjalizowanej kolekcji...

pytanie, jak to zainicjalizować ?

czy ktoś mi może podpowiedzieć, czy w ogóle jestem na dobrej drodze jeśli chodzi o te zapytanie ?

pozdrawiam.
luckyps
Cytat(janq79 @ 26.03.2012, 13:44:34 ) *
utknąłem na następującym ćwiczeniu:

Stworzyć tablicę moja_tablica i przekopiować do niej wszystkie dane z tablicy
employees.


hmmm... najprościej to zrobić tak:
  1. CREATE TABLE moja_tablica AS SELECT * FROM employees
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.