Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PL/SQL - tablice, kopiowanie danych z tabeli do tablicy
janq79
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.03.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował janq79 26.03.2012, 12:46:25
Go to the top of the page
+Quote Post
luckyps
post
Post #2





Grupa: Zarejestrowani
Postów: 153
Pomógł: 41
Dołączył: 28.06.2011
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 17:21