From: Jason King <jhking@airmail.net>
Subject: ada and pl/sql
Date: Mon, 27 Mar 2006 14:05:10 -0600
Date: 2006-03-27T14:05:10-06:00 [thread overview]
Message-ID: <122gh5o729tsfcf@corp.supernews.com> (raw)
I'm a long-term pl/sql developer who would like to have a general
purpose programming language that works a lot like what I'm used to.
Hence I've been looking at Ada.
There are (from the pl/sql perspective) three significant differences:
1) Transparent shifting from pl/sql to sql
FOR x IN (SELECT user_name FROM all_users ) LOOP
-- do something
END LOOP ; -- creates a cursor and x.user_name is valid inside the
--loop
2) pl/sql is very forgiving about doing "automatic" conversions
x number := "1" + 2; -- assigns 3 to x it doesn't raise an error.
3) The most commonly used string type is varchar2 with usage examples
below:
v varchar2(50); -- declare a varchar2, max length 50
v varchar2(50) := 'short string'; -- assign a value, literal <50
-- does not raise an error.
v varchar2(10) := '12345678901' ; -- raises value_error
-- literal > max
declare
v1 varchar2(10) := 'Hello';
v2 varchar2(10) := 'World';
v3 varchar2(30);
begin
v3 := v1 || ' ' || v2 ; -- || is string concat operator.
-- no error here since 'Hello World'
-- fits.
dbms_output.put_line(v3) ; -- prints "Hello World"
Issue 1 is true for all languages so I can just deal with it.
Issue 2 I often code around on the pl/sql as its automatic conversions
aren't always what I want.
Issue 3 is a killer.
Ada string doesn't work because it raises errors for assignments of
shorter as well as longer strings. ada.strings.bounded and
ada.strings.unbounded are issues because assignment (:=) doesn't work
for them and concatenation is method not an operator. As far as I can
tell I can't overload the assignment operator or the || operator.
Other than creating a new language is there some way to make a
varchar2-like first-class datatype that has its own operators?
next reply other threads:[~2006-03-27 20:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-27 20:05 Jason King [this message]
2006-03-27 20:28 ` ada and pl/sql Georg Bauhaus
2006-03-27 21:07 ` Björn Persson
2006-03-27 21:15 ` Martin Dowie
2006-03-27 23:28 ` Jason King
2006-03-28 2:53 ` Jeffrey Creem
2006-03-29 19:51 ` Martin Krischik
2006-03-29 19:47 ` Martin Krischik
2006-03-29 18:04 ` Kenneth Almquist
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox