From: Galen Boyer on
Robert Klemme <shortcutter(a)googlemail.com> writes:

>> One of the biggest winning arguments for Oracle, is that it run on
>> almost all platforms, MS products only run on one.
>
> Why is that an argument pro Oracle?

Hm... So, on any OS you can run Oracle? How is that not an argument
that is pro Oracle?

--
Galen Boyer

--- news://freenews.netfront.net/ - complaints: news(a)netfront.net ---
From: gazzag on
On 25 Mar, 01:55, Galen Boyer <galen_bo...(a)yahoo.com> wrote:
> Robert Klemme <shortcut...(a)googlemail.com> writes:
> >> One of the biggest winning arguments for Oracle, is that it run on
> >> almost all platforms, MS products only run on one.
>
> > Why is that an argument pro Oracle?
>
> Hm... So, on any OS you can run Oracle?  How is that not an argument
> that is pro Oracle?
>
> --
> Galen Boyer

At the very least we can agree that it's a limit of SQL Server :)

-g
From: Jonathan Lewis on
"Jonathan Lewis" <jonathan(a)jlcomp.demon.co.uk> wrote in message
news:RM6dnTmUA8fLkjvWnZ2dnUVZ8mqdnZ2d(a)bt.com...
>
> I think the thing that looks odd to the Oracle professional is as
> follows:
> In SQL Server you can do something like this (apologies for incorrect
> table and column names, I don't have a copy of the software handy):
>
> create procedure jpl
> as
>
> set nocount on
> select name from sys.schemas;
>
> select name, physical_name
> from sys.master_files;
>
> set nocount off
> go
>
> From (say) sqlcmd you can now type:
>
>> jpl
>> go
>
> This effectively executes and displays the results of the
> two queries in the procedure - and this seems "viable"
> in something like a lightweight tool supplied by the
> people who produced the database software.
>
> BUT -
> The procedure seems to have taken on the responsibility of knowing
> how to output the data to the front-end.
>
> So, from the viewpoint of the Oracle developer, what do you have to
> do in the application code to know that when you call the procedure
> you're going to get two result sets which are different shapes.
> (Presumably you want to see two sets of data, rather than one set of data
> which is just a single column very wide string.) And how does the
> front-end code know that it might, or might not, get some "data" which is
> actually row counts depending on whether the procedure "set nocount on"
> or not ?
>
> Does your application call to the procedure have to know about all the
> result sets that could be produced in the procedure and call the
> procedure passing in references to some sort of cursor handle ?
>
> Please bear in mind that this question is being asked from a perspective
> of total ignorance of how you are expected to use procedures in
> application code written for SQL Server.
>
>

Would anyone care to make a technical comment on
my earlier comment

I'm still interested to hear how the front-end code can handle the
output from a procedure when it doesn't have any information
about what that output might look like.


--
Regards

Jonathan Lewis
http://jonathanlewis.wordpress.com



From: Mladen Gogala on
On Thu, 25 Mar 2010 13:01:58 +0000, Jonathan Lewis wrote:

> Would anyone care to make a technical comment on my earlier comment
>
> I'm still interested to hear how the front-end code can handle the
> output from a procedure when it doesn't have any information about what
> that output might look like.

Well, there must be some information. If the output type is a cursor, one
can describe the cursor. In Perl, which is my front end of choice, a
statement handle has the following properties which describe the output
rather well: NUM_OF_FIELDS,NAME,TYPE,PRECISION and SCALE. I can always
construct my output of choice, based on the handle description, even if I
don't know what the original statement looks like, which is frequently
the case with the dynamic SQL. However, I have to know that the output
type is a cursor, not a scalar variable. So, if my output is a statement
handle called $sth, I would do the following:

my $nf = $sth->{NUM_OF_FIELDS};
for ( my $i = 0; $i < $nf; $i++ ) {
my $name = $sth->{NAME}[$i];
my $type = $sth->{TYPE}[$i];
my $prec = $sth->{PRECISION}[$i];
my $scle = $sth->{SCALE}[$i];
my $tn=$db->type_info($type)->{TYPE_NAME};
print
"Field number $i: name $name of type $tn".
"with precision $prec,$scle\n";
}

That would give me the exact description of the output. One cannot know
nothing of the output, that would make any programming impossible.
Executing a procedure which you know nothing about is like the Russian
roulette: you never know when the chamber will be loaded and what will
come out of the barrel.

--
http://mgogala.byethost5.com
From: Jonathan Lewis on
"Mladen Gogala" <no(a)email.here.invalid> wrote in message
news:pan.2010.03.25.15.10.07(a)email.here.invalid...
> On Thu, 25 Mar 2010 13:01:58 +0000, Jonathan Lewis wrote:
>
>> Would anyone care to make a technical comment on my earlier comment
>>
>> I'm still interested to hear how the front-end code can handle the
>> output from a procedure when it doesn't have any information about what
>> that output might look like.
>
> Well, there must be some information.

One would hope so - but in the Oracle world your front-end code has
a formal link with the datbaase through the input types for a procedure
and the output type for a function, and it's a little bit difficult to
change the
(database) code in a way that changes the input and output types without
realising that the front-end code might need to be modified.

On the other hand, in the SQL Server world you can have a procedure
that has no apparent feature for a formal definition of what it's going to
output - and therefore no formal mechanism for the front-end to associate
what it's expecting with what the database code might deliver.


--
Regards

Jonathan Lewis
http://jonathanlewis.wordpress.com




First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Prev: semvmx
Next: 10.2.0.5 Patchset