Re: PL/SQL differences between Solaris & Linux
Date: Thu, 24 Jul 2008 08:57:38 -0500
Message-ID: <e9569ef30807240657l60af0ebbqd1dae97b54f89905@mail.gmail.com>
I think the point the original poster is trying to make is that he isn't
switching from one version of oracle to another, but merely switching
platforms. I've found several instances where things were allowed in 9i
PL/SQL and Oracle got much more strict in 10g. I don't think this is what we
are talking about here. Are you sure all your pl/sql init.ora parameters are
identical between the two environments? What about one-off patches between
the two installs? I was always reading Metalink Doc ID #453663.1 and
wondering if it applies (my guess is no).****
Bradd Piontek
Oracle Blog: http://piontekdd.blogspot.com
Linked In: http://www.linkedin.com/in/piontekdd
On Thu, Jul 24, 2008 at 8:33 AM, Ken Naim <kennaim_at_gmail.com> wrote:
> This is most likely a bug. I had a similar situation where functionality
> was
> actually deemed a bug in a later release. In version 8.1.5 views could be
> created with and passed parameters.
>
> Ken
>
> -----Original Message-----
> From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org]
> On Behalf Of William Wagman
> Sent: Wednesday, July 23, 2008 2:29 PM
> To: oracle-l
> Subject: PL/SQL differences between Solaris & Linux
>
> Greetings,
>
> We are in the process of moving our 9.2.0.8.0 EE database from Solaris
> SunOS 5.8 Generic_117350-54 sun4u sparc SUNW,Sun-Fire-480R to Linux
> 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64
> x86_64 GNU/Linux and have found an issue with some PL/SQL code. The
> following PL/SQL code segment (if the entire procedure would help, it's
> only 100 lines, let me know) compiled successfully on Solaris...
>
> EXCEPTION
> WHEN OTHERS
> THEN
> SELECT ucd.log_seq.NEXTVAL
> INTO v_error_row
> FROM DUAL;
>
> INSERT INTO ucd.LOG
> VALUES (v_error_row, 'APS', 'CARD_SERVICE_FIX', 'PROCEDURE',
> 'ERROR', SQLCODE || ': ' || SQLERRM || '.', SYSDATE);
>
> This code on linux generated the error
> PL/SQL: ORA-00984: column not allowed here
> Which is to be expected (I guess) as I this is apparently not supported
> with SQLCODE and SQLERRM and I had to make the following changes...
>
> v_error_string VARCHAR2 (4000);
> .
> .
> EXCEPTION
> WHEN OTHERS
> THEN
> v_error_string := SQLCODE || ': ' || SQLERRM || '.';
> SELECT ucd.log_seq.NEXTVAL
> INTO v_error_row
> FROM DUAL;
>
> INSERT INTO ucd.LOG
> VALUES (v_error_row, 'APS', 'CARD_SERVICE_FIX', 'PROCEDURE',
> 'ERROR', v_error_string, SYSDATE);
>
> Can anyone explain why this worked on Solaris but not on linux
> (disclaimer: I didn't write the code). Is there something else I may not
> be aware of going on, is it an artifact of something else, are there
> differences between solaris and linux in this regard or are the gods
> just angry at me for other transgressions?
>
> Thanks.
>
>
> Bill Wagman
> Univ. of California at Davis
> IET Campus Data Center
> wjwagman_at_ucdavis.edu
> (530) 754-6208
>
> --
> http://www.freelists.org/webpage/oracle-l
>
>
> --
> http://www.freelists.org/webpage/oracle-l
>
>
>
-- http://www.freelists.org/webpage/oracle-lReceived on Thu Jul 24 2008 - 08:57:38 CDT