[PL/SQL] Operacje na plikach
marekkuj@gmail.com - 21-06-2007 00:03
[PL/SQL] Operacje na plikach
Jak moge wysłać wynik przetwarzania jezyka pl/sql na bazie danych oracle do pliku ? jak moge odczytac pewne dane z pliku tekstowego za pomoca jezyka pl/sql? Lub jak zainicjowac tablice taka zwykla tablice jak w jezyku C czy jakim kolwiek innym i zapisac tam pewne dane .. w jezyku pl/sql?
Ralf - 21-06-2007 00:03
marekkuj@gmail.com napisał(a): > Jak moge wysłać wynik przetwarzania jezyka pl/sql na bazie danych > oracle do pliku ? jak moge odczytac pewne dane z pliku tekstowego za > pomoca jezyka pl/sql? BFILE
> Lub jak zainicjowac tablice taka zwykla tablice jak w jezyku C czy > jakim kolwiek innym i zapisac tam pewne dane .. w jezyku pl/sql? > Nie ma takiej struktury, jedynie kursory.
-- pozdrawiam Rafał
Adamm - 21-06-2007 00:03
Użytkownik "Ralf" <ralf_k@interia.bezspamu.pl> napisał w wiadomości news:f5c2l1$e1u$1@nemesis.news.tpi.pl... > marekkuj@gmail.com napisał(a): >> Jak moge wysłać wynik przetwarzania jezyka pl/sql na bazie danych >> oracle do pliku ? jak moge odczytac pewne dane z pliku tekstowego za >> pomoca jezyka pl/sql? > BFILE
Zapewne nie o to chodziło koledze poczytaj o pakiecie UTL_FILE i CREATE DIRECTORY
a tu masz prosty przykładzik : FUNCTION OPEN_LOG_FILE (p_file_name_pref in varchar2) RETURN BOOLEAN IS -- l_file UTL_FILE.FILE_TYPE; l_path VARCHAR2(500); l_file_name VARCHAR2(500):= p_file_name_pref||'_TIME'||to_char(sysdate,'YYYYMM DD_HH24MISS')||'.txt'; -- BEGIN -- l_path := substr(l_path,1,instr(l_path,',')-1); -- l_file := UTL_FILE.FOPEN(l_path,l_file_name,'w'); -- return true; EXEPTIONS when others then return false; END OPEN_LOG_FILE;
> >> Lub jak zainicjowac tablice taka zwykla tablice jak w jezyku C czy >> jakim kolwiek innym i zapisac tam pewne dane .. w jezyku pl/sql? >> > Nie ma takiej struktury, jedynie kursory.
Chyba dopiero zaczynasz przygodę z pl/sqlem, oczywiście że sa podobne struktury Tak na szybko masz przykładową deklarację: TYPE r_rola_rec_t IS RECORD ( ROLA VARCHAR2(200) , POZIOM VARCHAR2(10) ); -- TYPE g_rola_array_t is table of r_rola_rec_t INDEX BY BINARY_INTEGER; g_rola_array g_rola_array_t;
a więcej poczytaj o kolekcjach w języku pl/sql
Pozdrawiam Adam
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 21-06-2007 00:03
Dnia Wed, 20 Jun 2007 22:23:39 +0200, Ralf <ralf_k@interia.bezspamu.pl> wklepał(-a):
>> Lub jak zainicjowac tablice taka zwykla tablice jak w jezyku C czy >> jakim kolwiek innym i zapisac tam pewne dane .. w jezyku pl/sql? >> >Nie ma takiej struktury, jedynie kursory.
Jak nie ma, jak są?
np.
TYPE rec IS RECORD ( k1 number , k2 varchar2(30) );
TYPE t_rec IS TABLE OF rec;
tab_rec t_rec := t_rec();
BEGIN FOR k IN 1..10 LOOP tab_rec.EXTEND; tab_rec.k1(k) := k; END LOOP;
FOR m IN tab_rec.FIRST .. tab_rec.LAST LOOP dbms_output.put_line (tab_rec.k1(m)); END LOOP;
END;
Albo np. tak - żeby wczytać szybko jakąś tabelę:
TYPE rec IS RECORD ( k1 dbms_sql.number_table , k2 dbms_sql.varchar2_table );
tablica_rec rec;
cursor c_emp is select empno, empname from emp;
BEGIN OPEN c_emp; LOOP FETCH c_emp BULK COLLECT INTO tablica_rec.k1, tablica_rec.k2 LIMIT 100; -- tu coś robimy na tablicy: FOR i IN 1..tablica_rec.k1.COUNT LOOP dbms_output.put_line ('To jest pracownik nr '||tablica_rec.k1(i)); END LOOP; EXIT WHEN c_emp%NOTFOUND; -- a w następnym przejściu pętli pobieramy kolejne 100 rekordów END LOOP; CLOSE c_emp; END;
Trzeba zajrzeć do dokumentacji PL/SQL - rozdział Collections and records. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
szaman - 23-06-2007 00:03
Everything You Need to Know About Collections, But Were Afraid to Ask http://www.oracleplsqlprogramming.co...20to%20Ask.ppt
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
ms sql server - =?ISO-8859-2?Q?domy=B6lny_format_kolumn_ty?==?ISO-8859-2?Q?pu_datetime?=
zanotowane.pldoc.pisz.plpdf.pisz.plshanti.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|