Content deleted Content added
ce |
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
||
(31 intermediate revisions by 19 users not shown) | |||
Line 1:
'''Object-PL/SQL''' ('''[[Object-oriented programming|Object]]-Procedural Language/[[Structured Query Language]]''' or simply '''O-PL/SQL''') is a methodology of using the [[Oracle Corporation]]'s [[Procedural programming|procedural]] extension [[programming language|language]] for [[SQL]] and the [[Oracle Database|Oracle relational database]].<ref name="CITDK">{{cite web|url=http://www.cit.dk/cot/reports/reports/Case4/18/cot-4-18.pdf|title=Experiences with Object Oriented Development in PL/SQL|author=Lassan, Alan R.
Although PL/SQL's general [[Syntax (programming languages)|syntax]] formerly used to resemble that of [[Ada (programming language)|Ada]] or [[Pascal (programming language)|Pascal]], there were many improvements that mainly include the ''Java embedding code''<ref name="STKOVER">{{cite web|url=
The mixing and embedding of [[Database trigger|triggers]] and [[stored procedure]]s was one of the breakthrough points up to support the use of [[PL/SQL]] in a ''OO'' paradigm.<ref name="SAMS">Benett, 2002:144</ref> The inclusion in the SQL syntax of statements such as
== Autonomy, notoriety and importance of O-PL/SQL ==
The O-PSL/SQL isn't
== A confusing of ''objects'' ==
''Database objects'' are concepts that refer to [[Relational model|relational]] or
== The PL/SQL ==
{{Main article|PL/SQL}}
PL/SQL is available in Oracle Database (since version 7), [[TimesTen|TimesTen in-memory database]] (since version 11.2.1), and [[IBM
O-PL/SQL
thus creating user-defined datatypes as == Examples of uses of syntax of O-PL/SQL ==
Here is a small set of examples of O-PL/SQL syntax, extracted from the official documentation<ref name="ORADOC">{{cite web|url=http://docs.oracle.com/|title=Oracle Documentatio|publisher=Oracle|
A simple example of object-oriented PL/SQL<ref>{{cite web|url=http://www.adp-gmbh.ch/ora/plsql/oo/example_1.html|title=Object Oriented Oracle, example 1|publisher=René Nyffenegger's collection of things on the web|accessdate=19 April 2012}}</ref><source lang="SQL">▼
▲A simple example of object-oriented PL/SQL<ref>{{cite web|url=http://www.adp-gmbh.ch/ora/plsql/oo/example_1.html|title=Object Oriented Oracle, example 1|publisher=René Nyffenegger's collection of things on the web|
<syntaxhighlight lang="plpgsql">
create or replace type base_type as object (
a number,
Line 34 ⟶ 33:
member procedure proc (n number)
) instantiable not final;
/</
Now, the type's implementation is created. The implementation defines how the type's functions, procedures and how explicit constructors behave:<
create or replace type body base_type as
constructor function base_type return self as result is
Line 53 ⟶ 52:
end proc;
end;
/</
We're ready to derive from base_type. The keyword for deriving is under. The derived type defines a new attribute (named: m) and overrides func.<
create or replace type deriv_type under base_type (
m number,
overriding member function func return number
);
/</
As is the case with base types, the overridden methods in the derived type must be implemented:
<syntaxhighlight lang="plpgsql">
create or replace type body deriv_type as
overriding member function func return number is
Line 67:
end;
end;
/</
The created types can be
< declare
b1 base_type :=base_type();
Line 82 ⟶ 83:
dbms_output.put_line(d2.func);
end;
/</
Results
The created types have become real types and can be used in tables:
<syntaxhighlight lang="plpgsql">
create table table_base (
b base_type
Line 101 ⟶ 103:
/
select t.b.func() from table_base t;
</syntaxhighlight>
Results:
<
select avg(t.b.func()) from table_base t;
</syntaxhighlight>
Result:
Another example of stored procedure in Java embedded in Oracle Documentation<ref name="ORA2">{{cite web|url=http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm#CACFGDCI|title=Calling Java Methods in Oracle Database|publisher=Oracle|accessdate=20 April 2012}}</ref>▼
== Bibliography ==▼
* {{cite book|url=http://books.google.com.br/books?id=1RwFA-vlwX8C&pg=PA144&lpg=PA144&dq=mixing+java+in+pl/sql+procedures+and+triggers&source=bl&ots=Vw7l1H7TUe&sig=bykIRLXpPkVPYucWr3fJhpYjzfY&hl=pt-BR&sa=X&ei=L2WMT5ukDYio8gST1JHFCQ&ved=0CCMQ6AEwAA#v=onepage&q=mixing%20java%20in%20pl%2Fsql%20procedures%20and%20triggers&f=false|last=Bennett|first=Mathew|title=Programming Oracle Developer|edition=1|place=Indianapolis|publisher=Sams|year=2002|pages=348|isbn=0672321106}}▼
* {{cite book|url=http://books.google.com.br/books?id=FqUKI3MSuHYC&printsec=frontcover&hl=pt-BR&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|last=Bales|first=Donals|title=PL/SQL from Novice to Professional|edition=1|place=New York|publisher=Apress|year=2007|isbn=10590598822|pages=469}}▼
* {{cite book|url=http://my.safaribooksonline.com/book/databases/oracle-pl-sql/9780596805401|title=Oracle PL/SQL Programming|last=Feuerstein|first=Steven|last2=Pribyl|first2=Bill|place=Sebastopol|publisher=O'Reilly Media, Inc.|year=2009|pages=978-0-596-51446-4|isbn=9780596514464|chapter=26}}▼
*{{cite book|url=http://218.92.71.5:1085/trebook/book/book36/2009986047703.pdf|last=Rahayu|first=Wenny|last2=taniar|first2=David|last3=Pardede|first3=Eric|title=Object-Oriented Oracle|place=Hershey|publisher=IRM Press|year=2006|pages=345|isbn=1591406080}}▼
==See also==
* [[Relational database management system]]
Line 125 ⟶ 117:
* [[Transact-SQL]]
* [[Database management system]]
▲== Bibliography ==
▲* {{cite book|url=
▲* {{cite book|url=
▲* {{cite book|chapter-url=http://my.safaribooksonline.com/book/databases/oracle-pl-sql/9780596805401|title=Oracle PL/SQL Programming|
▲*{{cite book|url=http://218.92.71.5:1085/trebook/book/book36/2009986047703.pdf|
==References==
Line 130 ⟶ 127:
== External sources ==
* [https://web.archive.org/web/20120917012254/http://elearning.algonquincollege.com/coursemat/dat2355d/oracle-oo.html Examples of O-Pl/SQL]
▲* Another example of stored procedure in Java embedded in Oracle Documentation
<!-- NOTE
This is not the place for links to each and every website that may be helpful
|