You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by Apache Wiki <wi...@apache.org> on 2006/01/13 01:40:40 UTC

[Db-derby Wiki] Update of "DerbySQLroutines" by DanDebrunner

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Db-derby Wiki" for change notification.

The following page has been changed by DanDebrunner:
http://wiki.apache.org/db-derby/DerbySQLroutines

------------------------------------------------------------------------------
  
  The [https://svn.apache.org/repos/asf/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ Derby functional tests] also include procedures.
  
+ 
+ == Are Derby Procedures *Stored* Procedures? ==
+ Databases, pioneered by Sybase, initially provided stored procedures that were written in
+ a enhanced SQL programming language. The enhanced SQL contained flow control, variables etc.
+ in addition to the standard DML constructs. The procedures were declared in by a CREATE PROCEDURE
+ statement containing the logic in the enhanced SQL. The database then compiled the procedure and stored
+ its definition and compiled form. Thus the procedures were completely stored by the database, hence
+ the term stored procedure.
+ 
+ Derby currently supports procedures written in the Java programming language, following the SQL Standard, Part 13.
+ With these Java procedures, the implementation of the procedure, a public static Java method in a Java class,
+ is compiled outside the database, typically archived into a jar file and presented to the database with the CREATE PROCEDURE statement.
+ Thus the CREATE PROCEDURE statement is no an atomic "define and store" operation. The compiled Java for a procedure (or function)
+ may be stored in the database using the standard SQL procedure SQLJ.INSTALL_JAR or may be stored outside the database
+ in the class path of the application.
+ 
+ The advantage of Java procedures is that the same procedure will run on any database that supports the standard, such
+ as Derby, IBM's DB2 and Oracle.
+