1. Prise en charge du type d'objet : Dans cette version, les fonctions membres sont prises en charge, mais pas encore les fonctions membres MAP.
create or replace type mf_test as object
(
name varchar2(30),
member function disp return varchar2
);
create or replace type body mf_test as
member function disp return varchar2 is
begin
return 'Name : '||name;
end;
end;
edb=# declare
edb-# v_mf mf_test;
edb$# begin
edb$# v_mf := mf_test('Raghavendra');
edb$# dbms_output.put_line(v_mf.disp());
edb$# end;
Name : Raghavendra
EDB-SPL Procedure successfully completed
2. Sous-types Pl/SQL : Nous pouvons maintenant définir nos propres sous-types dans la partie déclarative de n'importe quel bloc, sous-programme ou package PL/SQL.
Syntax: SUBTYPE subtype_name IS base_type[(constraint)] [NOT NULL];
declare
subtype hiredate is date not null;
pfdate hiredate := sysdate;
begin
dbms_output.put_line(pfdate);
end;
06-OCT-12 19:53:44
EDB-SPL Procedure successfully completed
3. CONTRAINTES EN CASCADE DE LA TABLE : Cette option supprimera toutes les contraintes de clé étrangère faisant référence à la table à supprimer, puis supprimera la table.
edb=# create table master(id int primary key);
edb=# create table master1(id int references master(id));
edb=# d master1
Table "enterprisedb.master1"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Foreign-key constraints:
"master1_id_fkey" FOREIGN KEY (id) REFERENCES master(id)
edb=# drop table master cascade constraints;
NOTICE: drop cascades to constraint master1_id_fkey on table master1
DROP TABLE
edb=# d master1
Table "enterprisedb.master1"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
4. TYPE dans la définition du package :
create or replace package t_pack as
type ftype is record(name varchar2(20));
end;
edb=# call t_pack.ftype('EDB');
ftype
-------
(EDB)
(1 row)
5. Appel de la fonction TABLE() sur les tables imbriquées : Une TABLE() permet d'interroger une collection dans la clause FROM comme une table.
CREATE OR REPLACE TYPE string_a IS TABLE OF VARCHAR2(765);
select * from table(string_a('abc','xyz')) ;
column_value
--------------
abc
xyz
(2 rows)
6. IN/OUT de l'UDT dans l'appel de fonction : Les fonctions udtabletype_in et udtabletype_out sont désormais prises en charge pour les tables imbriquées.
7. Utilisation sur les mots-clés réservés (LOG/CURRENT_DATE) : Maintenant, le mot LOG peut être utilisé pour nommer la fonction. Également CURRENT_DATE, peut être utilisé pour les noms de variables.
edb=# create or replace function log(t text) return text as
begin
return t;
end;
edb=# select log('EDB');
log
-----
EDB
(1 row)
edb=# declare
edb-# current_date date := '07-OCT-2012';
edb$# begin
edb$# dbms_output.put_line(current_date);
edb$# end;
07-OCT-12 00:00:00
EDB-SPL Procedure successfully completed
8. Prise en charge du type de données STRING /NVARCHAR2 : Désormais, le type de données STRING et NVARCHAR2 pour les données multi-octets sont pris en charge pour la colonne de table. La chaîne aliasée vers VARCHAR2 et NVARCHAR2 correspond au varchar des types de données PPAS.
edb=# create table dtype( a string, b nvarchar2);
CREATE TABLE
edb=# d dtype
Table "enterprisedb.dtype"
Column | Type | Modifiers
--------+-------------------+-----------
a | character varying |
b | character varying |
Lien de téléchargement et notes de version :
http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads