Talk:PL/SQL

Tail recursion irrelevant here
The brief discussion of tail recursion is probably off the point and confusing to readers in database art. SQL was created as a means of specifying relational operators: project, select, join, etc. Looping and recursion are not necessary to the relational algebra, hence i.m.h.o. the discussion should skip the un-programmatic aspects of SQL and dive directly into the programmatic features of PL/SQL. --Anonymous —Preceding unsigned comment added by Wernher (talk • contribs) 19:03, October 27, 2004


 * Agreed. --Anonymous 2 —Preceding unsigned comment added by 165.187.10.2 (talk • contribs) 07:41, July 19, 2006


 * Agree that a discussion of recursion may be overkill for this article, but disagree as to the reason. The whole point of the language is to add procedural elements like conditionals (IF, CASE) and looping to what is otherwise a non-procedural language. It's trivial to use a PL/SQL collection datatype to implement a basic stack for recursion, if a recursive algorithm is desired. BWatkins (talk) 03:27, 4 October 2011 (UTC)

I agree as well. I've been using PL/SQL many years and never had to (or wanted to) know about "tail recursion". What about putting in a an expanded section on procedure Exception Handling? That would be really good info IMHO. Wam067 (talk) 03:04, 26 March 2008 (UTC)

Advance or Advanced Data Type
Is it "Advance" or "Advanced" Data Type? --Ernst de Haan —Preceding unsigned comment added by Ernstdehaan (talk • contribs) 11:51, April 11, 2006


 * Advanced. --Anonymous 2 —Preceding unsigned comment added by 165.187.10.2 (talk • contribs) 07:42, July 19, 2006

Ada connection
"Its syntax strongly resembles that of Ada"

Oracle Database PL/SQL Language Reference as of version 21c (2022) states: "PL/SQL is based on the programming language Ada." (Doubtless there are other languages with similarities to Ada and PL/SQL.)

Actually its syntax superficially reminds you of Ada, but everything that made Ada an interesting language has been ripped out. It could just as easily have Pascal, C or even Basic syntax, for all the relevance it has to ADA.

Interestingly enough, PL/SQL is usually implemented by interpreting a byte code. The only native PL/SQL compiler works by first translating into C.

There's also an alternative language, ProC, which is a pre-processed C that allows similar embedding of SQL. —Preceding unsigned comment added by 129.113.245.64 (talk • contribs) 19:48, April 17, 2007

ADDITION : Claiming that it was based on ADA made it an easier sell to the USA Department of Defence (DOD). (By GrandPoohBah 28-Oct-2007)


 * I can fully believe that it is based on Ada, as both Ada and PL/SQL strongly remind me of PL/1. Are there any sources on the PL/SQL <-> PL/1 connection?Mzk1 (talk) 06:54, 8 August 2011 (UTC)
 * I really, really believe that I heard many years ago that Oracle is using a variation of PL/1 and Oracle's connection to IBM's DB2 supports the idea that Oracle was influenced by IBM. Note that PL/1 existed for more than a decade before Ada was released. Sam Tomato (talk) 01:53, 13 November 2016 (UTC)
 * Also look at ALGOL. Apparently it is the origin of them all. Sam Tomato (talk) 02:11, 13 November 2016 (UTC)

First Appearance in Database
Im confused about the first appearance of PLSQL in the database. On many web sites PLSQL is listed as being introduced in Oracle Database v6. However procedures, functions, packages and triggers were first made available in Oracle v7, not v6 ! Can someone please clarify why PLSQL is often listed as appearing in v6 ? How could PLSQL be executed in v6 ? Did you have to use OCI or SQL*Plus or some other means ?

PLSQL was included in Oracle Forms v3 around the same time frame as database v6, however it had its own PLSQL engine and did not send the PLSQL code to the database to be execute (despite Oracle marketing and sales often implying that it did)

GrandPoohBah 00:52, 31 October 2007 (UTC)

PL/SQL v1 was available on the SQL*Plus command line as well as in various other Oracle tools in version 6. However it did not support stored packages/procedures/functions, just anonymous blocks. (It was also separately licensed as the Procedural Option.)

History - Time References
At present the History section uses only Oracle release numbers as a time references. I think it would be helpful to have calendar years cited as well, for those who do not measure time as against Oracle benchmarks... :)

Rbelzil (talk) 16:17, 29 September 2008 (UTC)

History - Features
How did the language evolve? e.g. when where packages introduced? —Preceding unsigned comment added by 84.73.201.209 (talk) 20:33, 13 May 2009 (UTC)

Exceptions as separate section?
Pragmas, control flow, automatic rollbacks and probably other issues make exceptions relatively complex to handle elegantly. Maybe some real-life examples could be added to show how to use it. All in all, maybe it deserves a separate section?

l0b0 (talk) 13:58, 24 March 2009 (UTC)

The assignment of values to a DATE datatype directly from a string, as shown in this article, is considered bad practice and should be avoided. Programming this way caused the majority of my company's (small number of) Y2K problems.

Instead, the programmer should always use a TO_DATE function - such as "MY_DATE = TO_DATE ('DD-MON-YYYY', '31-DEC-2010');".

82.26.147.98 (talk) 21:18, 16 May 2010 (UTC)

Cursors
This is a missing section. It shall address sys and ref cursors.--Michelle Ridomi (talk) 17:04, 5 February 2015 (UTC)

Is PL/1 the model for PL/SQL
I don't know anything about PL/SQL and very little about SQL itself. However, I used to be a proficient PL/1 programmer, and I have no problem reading and mostly understanding the PL/SQL code samples. — Preceding unsigned comment added by 76.102.116.97 (talk) 16:27, 15 May 2018 (UTC)

StepSqlite
I see there was a separate page for StepSqlite that was merged into this one. I was curious about it and went looking around but the product seems to be defunct; should the reference to it be removed so as to save others from a wild goose chase? — Preceding unsigned comment added by 107.195.167.115 (talk) 21:52, 12 October 2020 (UTC)