kanciastopantalones

Eclipse

Dec 8th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.96 KB | None | 0 0
  1. 3.6
  2.  
  3. CREATE OR REPLACE TYPE book_type AS OBJECT(
  4. bookno NUMBER,
  5. title VARCHAR2(30),
  6. genre VARCHAR2(20),
  7. MEMBER FUNCTION get_bookno RETURN NUMBER,
  8. STATIC FUNCTION show_super(book_obj in book_type) RETURN VARCHAR2,
  9. MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL;
  10.  
  11. 3.7
  12.  
  13. CREATE OR REPLACE TYPE BODY book_type AS
  14. MEMBER FUNCTION get_bookno RETURN NUMBER IS
  15. BEGIN
  16. RETURN (bookno);
  17. END;
  18.  
  19. STATIC FUNCTION show_super(book_obj in book_type) RETURN VARCHAR2 IS
  20. BEGIN
  21. RETURN ('Id: ' || TO_CHAR(book_obj.bookno) || ', Title: ' || book_obj.title);
  22. END;
  23.  
  24. MEMBER FUNCTION show RETURN VARCHAR2 IS
  25. BEGIN
  26. RETURN book_type.show_super( SELF );
  27. END;
  28. END;
  29.  
  30. 3.8
  31.  
  32. SELECT type, text
  33. FROM user_source
  34. WHERE name = 'BOOK_TYPE';
  35.  
  36. 3.9
  37.  
  38. CREATE TABLE book_obj_table OF book_type;
  39.  
  40. 3.10
  41.  
  42. SELECT * FROM book_obj_table;
  43. SELECT value(t) FROM book_obj_table t;
  44.  
  45. 3.11
  46.  
  47. SELECT sys_nc_rowinfo$ FROM book_obj_table;
  48.  
  49. 3.12
  50.  
  51. SELECT sys_nc_oid$ FROM book_obj_table;
  52.  
  53. 3.13
  54.  
  55. CREATE TABLE book_col_table (
  56. store_id NUMBER,
  57. books book_type
  58. );
  59.  
  60. 3.14
  61.  
  62. INSERT INTO "BOOK_COL_TABLE" VALUES ('1', BOOK_TYPE('5', 'Wiedzmin', 'Fantastyka'));
  63. INSERT INTO "BOOK_COL_TABLE" VALUES ('2', BOOK_TYPE('6', 'Wiedzmin2', 'Fantastyka'));
  64. INSERT INTO "BOOK_COL_TABLE" VALUES ('3', BOOK_TYPE('7', 'Wiedzmin3', 'Fantastyka'));
  65. INSERT INTO "BOOK_COL_TABLE" VALUES ('4', BOOK_TYPE('8', 'Wiedzmin4', 'Fantastyka'));
  66.  
  67. 3.15
  68.  
  69. SELECT p.books.title FROM book_col_table p;
  70.  
  71. 3.16
  72.  
  73. CREATE TYPE book_type2 AS OBJECT (
  74. title VARCHAR2(30),
  75. serie REF book_type2);
  76.  
  77. 3.17
  78.  
  79. CREATE TABLE book_obj_table2 OF book_type2;
  80.  
  81. 3.18
  82.  
  83. INSERT INTO book_obj_table2 VALUES('GoodBook Part 1', NULL);
  84.  
  85. 3.19
  86.  
  87. INSERT INTO book_obj_table2 SELECT book_type2 ('GoodBook Part 2', REF(t))
  88. FROM book_obj_table2 t
  89. WHERE t.title = 'GoodBook Part 1';
  90.  
  91. 3.20
  92.  
  93. SELECT t.title, DEREF(t.serie).title FROM book_obj_table2 t;
  94.  
  95. 3.21
  96.  
  97. SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = 'BOOK_OBJ_TABLE' OR TABLE_NAME = 'BOOK_OBJ_TABLE2';
  98.  
  99. Tabele maja ten sam zestaw kolumn.
  100.  
  101. 3.22
  102.  
  103. CREATE TYPE lista_ksiazek_wyp AS VARRAY(10) of varchar2(80);
  104.  
  105. 3.23
  106.  
  107. CREATE TYPE lista_ksiazek is TABLE of book_type;
  108.  
  109. 3.24
  110.  
  111. CREATE TABLE klasa
  112. (
  113. class_no NUMBER PRIMARY KEY,
  114. BRANCH CHAR(4),
  115. BORROWS lista_ksiazek
  116. )
  117. NESTED TABLE borrows STORE AS borrows_tab;
  118.  
  119. 3.25
  120.  
  121. INSERT INTO klasa (class_no, branch, borrows) VALUES
  122. (1, 'a', lista_ksiazek(
  123. book_type('7','OnePiece','Manga'),
  124. book_type('8','Poradnik na temat Zycia','Poradnik')
  125. )
  126. );
  127.  
  128. 3.26
  129.  
  130. SELECT e.*, d.*
  131. FROM klasa d, TABLE(d.borrows) e;
  132.  
  133. 3.27
  134.  
  135. SELECT * FROM user_nested_tables;
  136.  
  137. 3.28
  138.  
  139. DROP TABLE borrows_tab;
  140.  
  141. Usuniecie tabeli nie powiodlo sie. Zagniezdzone tabele moga byc usuniete jedynie poprzez usuniecie ich tabeli rodzica.
  142.  
  143. 3.29
  144.  
  145. ALTER TABLE klasa DROP COLUMN borrows;
  146.  
  147. Ponowne sprawdzenie perspektywy FROM user_nested_tables nie zwrocilo wynikow, co oznacza ze tabela stowarzyszona zostala usunieta.
  148.  
  149. 3.30
  150.  
  151. DROP TYPE lista_ksiazek_wyp;
  152. DROP TYPE lista_ksiazek;
  153.  
  154. 3.31
  155.  
  156. DROP TABLE book_obj_table;
  157. DROP TABLE book_obj_table2;
  158. DROP TABLE klasa;
  159.  
  160. 3.32
  161.  
  162. DROP TYPE book_type FORCE;
  163. DROP TYPE book_type2;
  164.  
  165.  
  166. XML !-----------------------------
  167.  
  168. 4.1
  169.  
  170. SELECT nr_prac, XMLElement("PRACOWNICY",nazwisko ) AS "wynik"
  171. FROM pracownicy
  172. WHERE nr_prac < 5;
  173.  
  174. 4.2
  175.  
  176. SELECT dbms_xmlgen.getXML('select * from PRACOWNICY') FROM dual;
  177.  
  178. 4.3
  179.  
  180. SELECT XMLElement("PRACOWNICY", XMLAttributes(nr_prac,nazwisko)) AS "wynik"
  181. FROM pracownicy
  182. WHERE nr_prac < 5;
  183.  
  184. SELECT XMLElement
  185. ("Pracownicy",XMLAttributes(nr_prac AS "numer pracownika"),
  186. XMLColAttVal (nazwisko AS "Nazwisko pracownika"),
  187. XMLColAttVal (nr_zesp AS "Numer zespolu pracownika")) AS "wynik"
  188. FROM pracownicy
  189. WHERE nr_prac < 5;
  190.  
  191. SELECT XMLElement("PRACOWNICY",
  192. XMLAttributes(nr_prac AS "id"),
  193. XMLElement("NAZWISKO", nazwisko ),
  194. ' pracuje w zespole '||nr_zesp||' i urodzil sie ',
  195. XMLElement("data_ur", data_ur))
  196. AS "wynik"
  197. FROM pracownicy
  198. WHERE nr_prac < 5;
  199.  
  200. wynik
  201. --------------------------------------------------------------------------------
  202. <PRACOWNICY NR_PRAC="1" NAZWISKO="GRZYBEK "></PRACOWNICY>
  203. <PRACOWNICY NR_PRAC="2" NAZWISKO="GRZYBIARZ "></PRACOWNICY>
  204. <PRACOWNICY NR_PRAC="3" NAZWISKO="WIREK "></PRACOWNICY>
  205. <PRACOWNICY NR_PRAC="4" NAZWISKO="JANECZEK "></PRACOWNICY>
  206.  
  207. wynik
  208. --------------------------------------------------------------------------------
  209. <Pracownicy numer pracownika="1"><column name = "Nazwisko pracownika">GRZYBEK
  210. <Pracownicy numer pracownika="2"><column name = "Nazwisko pracownika">GRZYBIARZ
  211. <Pracownicy numer pracownika="3"><column name = "Nazwisko pracownika">WIREK
  212. <Pracownicy numer pracownika="4"><column name = "Nazwisko pracownika">JANECZEK
  213.  
  214. wynik
  215. --------------------------------------------------------------------------------
  216. <PRACOWNICY id="1"><NAZWISKO>GRZYBEK </NAZWISKO> pracuje w zespole 4 i ur
  217. <PRACOWNICY id="2"><NAZWISKO>GRZYBIARZ </NAZWISKO> pracuje w zespole 5 i ur
  218. <PRACOWNICY id="3"><NAZWISKO>WIREK </NAZWISKO> pracuje w zespole 6 i ur
  219. <PRACOWNICY id="4"><NAZWISKO>JANECZEK </NAZWISKO> pracuje w zespole 5 i ur
  220.  
  221. 4.4
  222.  
  223. SELECT XMLForest (nazwisko,
  224. data_ur as "urodzony",
  225. 'Tak' as "Zwolniony")
  226. FROM pracownicy;
  227.  
  228. 4.5
  229.  
  230. select XMLElement (name "Zespoly",
  231. XMLAttributes(nr_zesp as "Numer"),
  232. XMLAgg(
  233. XMLElement (name "Pracownicy", nazwisko)
  234. )
  235. ) wynik
  236. from pracownicy
  237. group by nr_zesp;
  238.  
  239. 4.6
  240.  
  241. SELECT XMLConcat ( XMLElement("SZEF", S.NAZWISKO ),
  242. XMLElement("PODWLADNY", P.NAZWISKO) )
  243. AS "wynik"
  244. FROM pracownicy p, zespoly z, pracownicy s
  245. WHERE p.nr_zesp = z.nr_zesp and z.nr_prac_kz=s.nr_prac;
  246.  
  247. 4.7
  248.  
  249. CREATE TABLE testXML AS
  250. SELECT DBMS_XMLGEN.getXML
  251. ('SELECT * FROM pracownicy where nr_prac=1 or nr_prac=2')
  252. AS pracownicy
  253. FROM dual;
  254.  
  255. 4.8
  256.  
  257. CREATE TABLE pracownicy2 (
  258. prac_id NUMBER(3),
  259. prac_spec sys.XMLType,
  260. prac_name VARCHAR(35),
  261. funkcja_id NUMBER(4)
  262. );
  263.  
  264. 4.9
  265.  
  266. INSERT INTO pracownicy2 (prac_id, prac_spec)
  267. VALUES (101, sys.XMLType.createXML
  268. ('<Pracownicy nr="100">
  269. <charakter_zatrudnienia>Etatowy</charakter_zatrudnienia >
  270. </Pracownicy >'));
  271.  
  272. 4.10
  273.  
  274. SELECT * FROM PRACOWNICY2;
  275.  
  276. 4.11
  277.  
  278. SELECT prac_spec "Info o pracownikach" FROM PRACOWNICY2 ;
  279.  
  280. 4.12
  281.  
  282. SELECT p.prac_spec.extract
  283. ('/Pracownicy/charakter_zatrudnienia/text()').getStringVal() "Rodzaj umowy"
  284. FROM pracownicy2 p;
  285.  
  286. 4.13
  287.  
  288. UPDATE PRACOWNICY2 SET prac_spec=sys.XMLType.createXML('<Pracownicy nr ="200">
  289. <charakter_zatrudnienia>Umowa-zlecenie</charakter_zatrudnienia>
  290. </Pracownicy>');
  291.  
  292. 4.14
  293.  
  294. SELECT * FROM PRACOWNICY2;
  295.  
  296. 4.15
  297.  
  298. INSERT INTO pracownicy2 (prac_id, prac_spec)
  299. VALUES (102, sys.XMLType.createXML
  300. ('<Pracownicy nr="100">
  301. <charakter_zatrudnienia>Dorywczo</charakter_zatrudnienia >
  302. </Pracownicy >'));
  303.  
  304. 4.16
  305.  
  306. SELECT * FROM PRACOWNICY2;
  307.  
  308. 4.17
  309.  
  310. CREATE INDEX prac_idx ON pracownicy2 p
  311. (p.prac_spec.extract('//Pracownicy').getStringVal());
  312.  
  313. 4.18
  314.  
  315. DELETE FROM pracownicy2 p WHERE p.prac_spec.extract
  316. ('// Pracownicy/charakter_zatrudnienia /text()').getStringVal() = 'Dorywczo';
  317.  
  318. 4.19
  319.  
  320. GRANT xdbadmin TO ora5;
  321. GRANT ALTER SESSION TO ora5;
  322.  
  323. 4.20
  324.  
  325. <?xml version="1.0" encoding="UTF-8"?>
  326. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  327. xmlns:xdb="http://xmlns.oracle.com/xdb"
  328. version="1.0">
  329. <xs:element name="ksiazka" xdb:SQLType="BOOK_T">
  330. <xs:complexType>
  331. <xs:sequence>
  332. <xs:element name="tytul" type="xs:string"/>
  333. <xs:element name="cena" type="xs:float" xdb:SQLName="CENA" xdb:SQLType="FLOAT"/>
  334. <xs:element name="autorzy" minOccurs="0" maxOccurs="1" xdb:SQLType="CLOB">
  335. <xs:complexType>
  336. <xs:sequence>
  337. <xs:element name="autor" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
  338. </xs:sequence>
  339. </xs:complexType>
  340. </xs:element>
  341. <xs:element name="wydawnictwo" type="xs:string"/>
  342. <xs:element name="rok" type="xs:integer"/>
  343. </xs:sequence>
  344. <xs:attribute name="isbn" type="xs:string"/>
  345. </xs:complexType>
  346. </xs:element>
  347. </xs:schema>
  348.  
  349. 4.21
  350.  
  351. CREATE TABLE ksiazki_col_xsd
  352. (id NUMBER,
  353. pozycja XMLType)
  354. XMLTYPE COLUMN pozycja STORE AS OBJECT RELATIONAL
  355. XMLSCHEMA "SCHEMA1"
  356. ELEMENT "ksiazka";
  357.  
  358. 4.22
  359.  
  360. insert into ksiazki_col_xsd values (1,
  361. sys.XMLType.createXML('
  362. <ksiazka>
  363. <tytul>Ksiazka1</tytul>
  364. <cena>10</cena>
  365. <autorzy><autor>Autor1</autor></autorzy>
  366. </ksiazka>
  367. '));
  368.  
  369. insert into ksiazki_col_xsd values (2,
  370. sys.XMLType.createXML('
  371. <ksiazka>
  372. <tytul>Ksiazka2</tytul>
  373. <cena>20</cena>
  374. <autorzy><autor>Autor2</autor></autorzy>
  375. </ksiazka>
  376. '));
  377.  
  378. insert into ksiazki_col_xsd values (3,
  379. sys.XMLType.createXML('
  380. <ksiazka>
  381. <tytul>Ksiazka3</tytul>
  382. <cena>30</cena>
  383. <autorzy><autor>Autor3</autor></autorzy>
  384. </ksiazka>
  385. '));
  386.  
  387. 4.23
  388.  
  389. create table ksiazki_col_clob_xsd(nr NUMBER(20), pozycja XMLType) XMLTYPE COLUMN pozycja STORE as CLOB;
  390.  
  391. 4.24
  392.  
  393. INSERT INTO ksiazki_col_clob_xsd (nr, pozycja)
  394. VALUES (101, sys.XMLType.createXML('
  395. <ksiazka>
  396. <tytul>Ksiazka 9000</tytul>
  397. <cena>9000</cena>
  398. <autorzy><autor>Songoku</autor></autorzy>
  399. </ksiazka>
  400. '));
  401.  
  402. INSERT INTO ksiazki_col_clob_xsd (nr, pozycja)
  403. VALUES (102, sys.XMLType.createXML('
  404. <ksiazka>
  405. <tytul>Ksiazka 101</tytul>
  406. <cena>101</cena>
  407. <autorzy><autor>101 Dalmatynczykow</autor></autorzy>
  408. </ksiazka>
  409. '));
  410.  
  411. SELECT * from ksiazki_col_clob_xsd;
  412.  
  413. 4.25
  414.  
  415. CREATE TABLE ksiazki_table_xsd OF sys.XMLType
  416. XMLSCHEMA "SCHEMA1"
  417. ELEMENT "ksiazka";
  418.  
  419. 4.26
  420.  
  421. INSERT INTO ksiazki_table_xsd VALUES (sys.XMLType.createXML('
  422. <ksiazka>
  423. <tytul>Leniwy slon</tytul>
  424. <cena>100</cena>
  425. <autorzy><autor>Alexandro Del Piero</autor></autorzy>
  426. </ksiazka>
  427. '));
  428.  
  429. INSERT INTO ksiazki_table_xsd VALUES (sys.XMLType.createXML('
  430. <ksiazka>
  431. <tytul>O muzyce alternatywnej</tytul>
  432. <cena>1</cena>
  433. <autorzy><autor>Doda</autor></autorzy>
  434. </ksiazka>
  435. '));
  436.  
  437. 4.27
  438.  
  439. SELECT t.getClobVal() from ksiazki_table_xsd t;
  440.  
  441. 4.28
  442.  
  443. SELECT * FROM USER_XML_TABLES;
Add Comment
Please, Sign In to add comment