ORACLE MULTISET – OBJECT TYPE – NESTED TABLE – BEISPIEL

ORACLE MULTISET – OBJECT TYPE – NESTED TABLE


Australien - Perth - Impression #australien #perth #impression -------------------------------------------------------------- ctpm - Synergy von Business & Gesundheit #synergyvonbusinessundgesundheit #ctpmsynergyvonbusinessundgesundheit -------------------------------------------------------------- Business-Unit: CTPM - BUSINESS IT-Consulting - Development & Programming - Administration - Business Analysis - Solution Architectures - Testmanagement Management-Consulting - Career Planning - Start-up Coaching & Consulting - Freelancer Management - Recruitment Consultant - Backoffice - PMO Training & Development CTPM - HEALTH Health & Wellness - Burnout - Prevention - Education & Training - Coaching - Health-related Travel Massage & Workout Saltgrotto CTPM - ACCOMMODATION Bed & Breakfast Apartment Conference Room Meetingpoint CTPM - MOVE Corporate Sailing & Hiking - Coaching - Teambuilding & Events Boating School - Boating License - Skippertraining Rent a Skipper Guests Hiking Personal Training -------------------------------------------------------------- Tags #ctpm #ctpm-business #ctpmbusiness #business #it-consulting #itconsulting #it #consulting #development #programming #developmentandprogramming #developmentprogramming #oracle #plsql #oracledba #webdesign #wordpress #oracleadministration #businessanalysis #solutionarchitectures #testmanagement #testmanager #softwarearchitect #management #consulting #managementconsulting #careerplanning #start-upcoaching #start-up-coaching #startup-coaching #startupcoaching #start-upconsulting #start-up-consulting #startup-consulting #startupconsulting #freelancer #freelancermanagement #freelancer-management - #recruitment #consultant #recruitmentconsultant #backoffice #PMO #training #development #traininganddevelopment #trainingdevelopment #ctpm-health #ctpmhealth #health #health #wellness #healthwellness #burnout #Prevention #burnoutprevention #education #training #healthtraining #coaching #healthcoaching #healthrelatedtravel #massage #workout #healthmassage #healthworkout #saltgrotto #saltcave #salzgrotte #ctpm-accommodation #ctpmaccommodation #accommodation #bedandbreakfast #bedbreakfast #bed-breakfast #privatzimmer #gästezimme #hotelzimmer #monteurzimmer #messezimmer #messebetten #messeköln #messecologne #messedüsseldorf #übernachtung #unterkunft #schlafen #Apartment #appartment #ferienwohnung #conferenceroom #conference-room #meetingpoint #büro #büroaufzeit #office #ctpm-move #ctpmmove #move #corporatesailing #corporatehiking #corporate-sailing #corporate-hiking #corporate #sailing #corporate #hiking #movecoaching #teambuilding #teamevents #boating #boatingschool #boating-school #bootsschule #sportbootsschule #segelschule #boatinglicense #boating-license #boating #skippertraining #skipper #skippertrainer #rent-a-skipper #rentaskipper #guestshiking #personaltraining #personaltrainer #personal-training #personal-trainer -- #cologne #köln #koeln #berlin #lindlar #rheinland #germany #deutschland #nrw #europa #nordrhein-westfalen #nordrheinwestfalen #oberbergischerkreis #oberberg

Australien – Perth – Impression


ORACLE – Seminare, Schulungen, Kurse und Workshops

  • Professioneller Einstieg in Oracle SQL
  • Oracle PL/SQL und DB-Programmierung
  • Oracle SQL- / PL/SQL-Tuning
  • Datenmodellierung und Datenbankdesign
  • Oracle SQL für Umsteiger
  • Oracle Datenbankadministration DBA
  • Oracle Backup & Recovery
  • Oracle Forms-Developer / Oracle Developer Suite

ORACLE – Dozenten, Trainer und Coaches

  • Dozenten und Coaches

MULTISET – OBJECT TYPE – NESTED TABLE (BEISPIEL / EXAMPLE)

drop table ctpm_demo_1;
drop table ctpm_demo_2;
drop type  ctpm_type;

— TABLE-Definition

CREATE TABLE ctpm_demo_1
(
ID     NUMBER(12),
FELD1  NUMBER(2),
FELD2  VARCHAR2(4000),
FELD3  DATE
);

INSERT INTO tpm_demo_1 VALUES (1,1,'demo1',SYSDATE);

— TABLE-Definition

CREATE TABLE ctpm_demo_2
(
ID     NUMBER(12),
FELD1  NUMBER(2),
FELD2  VARCHAR2(4000),
FELD3  DATE
);

INSERT INTO ctpm_demo_2 VALUES (1,1,'Text123',SYSDATE);
INSERT INTO ctpm_demo_2 VALUES (1,1,'4567890',SYSDATE);

— Die beiden Demotables dienen als Basis für dieses Beispiel.

— OBJECT-Definition

CREATE OR REPLACE TYPE ctpm_object AS OBJECT
(
ID     NUMBER(12),
FELD1  NUMBER(2),
FELD2  VARCHAR2(4000),
FELD3  DATE
);

— Wenn die vollständige Datensatzstruktur einer bestehenden Tabelle nachgebildet werden soll, empfiehlt es sich eine 1:1 Kopie der Vorlage als Objekt zu erstellen.

— TYPE-Definition

CREATE OR REPLACE TYPE ctpm_type AS TABLE OF ctpm_object;

— Damit eine Nested Table aufgenommen werden kann, ist die Erstellung eines weiteren TYPE notwendig. Diesmal vom TYP: AS TABLE OF.

— MULTISET in VIEW

CREATE OR REPLACE VIEW v_ctpm AS
SELECT ctd1.*
      ,CAST(MULTISET(SELECT ctd2.*
  FROM ctpm_demo_2 ctd2
  WHERE ctd2.id = ctd1.id
           ) AS ctpm_type ) AS allvalue
  FROM ctpm_demo_1 ctd1;

— Bei DML-Anweisungen (SELECT) in Prozeduren, Funktionen oder auch in VIEWs kann MULTISET eingesetzt werden. MULTISET bettet einen weiteren SELECT-Befehl ein und bildet somit wie in unserem Beispiel dargestellt, in einem Feld eine weitere ganze TABLE ab.

— FUNCTION, um NESTED TABLE aufzulösen

CREATE OR REPLACE FUNCTION get_multiset_as_clob (in_multiset IN ctpm_type)
RETURN clob AS
    v_ctpm_clob      CLOB;
BEGIN
    FOR i IN in_multiset.FIRST..in_multiset.LAST LOOP
        v_ctpm_clob:= v_ctpm_clob ||TO_CHAR(in_multiset(i).feld2);
    END LOOP;
   RETURN v_ctpm_clob;
END;

— Mittels einer solchen Funktion kann eine eingebettete Tabelle zur Ausgabe genutzt werden.

— EINSATZ

SELECT vc.*
      ,get_multiset_as_clob(vc.allvalue)
   FROM v_ctpm vc;

— Mittels dieser Datenbankabfrage, unter Verwendung der zuvor erstellten View, wird zum einem jeder Datensatz der Tabelle CTPM_DEMO_1, sowie der in Relation (CTPM_DEMO_1.ID = CTPM_DEMO_2.ID) stehenden Datensätze der Tabelle: CTPM_DEMO_2. Die Tabelle CTPM_DEMO_2 liefert nur die Spalteninhalte FELD2 und diese werden zuvor mittels der Funktion konkateniert (Stringverkettung).

Möchtet Sie das auch einsetzen?! Worauf wartet Sie? Der Rest vom Leben beginnt JETZT!


TIPP


ctpm – Business
– Oracle Training & Development –
Frankenwerft 3
50667 Köln

+49 221 277446-45