2014-05-20 12 views
5

A cosa serve Table-CAST e CAST-Multiset?Tabella-cast vs cast-multiset in pl-sql

Esempio di Table-Cast


SELECT count(1) 
INTO v_Temp 
FROM TABLE(CAST(Pi_Save_Data_List AS Property_data_list)) 
WHERE Column_Value LIKE '%Contact'; 

Esempio di Cast-Multiset


SELECT e.last_name, 
    CAST(MULTISET(SELECT p.project_name 
    FROM projects p 
    WHERE p.employee_id = e.employee_id 
    ORDER BY p.project_name) 
    AS project_table_typ) 
FROM emps_short e; 

Cosa isthe miglioramento delle prestazioni o l'impatto sul codice?

+0

Nessuno ne ha idea !!! :( –

+0

Che guadagno o impatto sulle prestazioni stai osservando? Io per primo non ho idea di cosa sia davvero la domanda –

+0

Scusate per essere così in ritardo .. In entrambi l'esempio è stato usato un casting ... il mio obiettivo principale è sapere il modo in cui l'operazione viene effettivamente eseguita in db. alcuni potrebbero consumare più memoria dell'altra o alcuni potrebbero essere più complessi nel tempo. Voglio solo avere un'idea per fare un uso corretto, quando usare cosa. –

risposta

7

La funzione TABLE() esegue il cast di un tipo di tabella nidificato in un set di risultati relazionali. Questo ci permette di interrogare una raccolta precedentemente popolata in SQL.

La chiamata di funzione CAST (MULTISET()) converte un set di risultati relazionali in un tipo di raccolta. Questo è principalmente utile quando si inserisce in una tabella con una colonna definita come tabella nidificata.

Pochi siti utilizzano funzionalità relazionali agli oggetti nelle loro strutture di dati permanenti, quindi il secondo utilizzo è piuttosto raro. Ma essere in grado di utilizzare le raccolte in istruzioni SQL incorporate è una tecnica molto interessante e ampiamente utilizzata in PL/SQL.