Re: PL/SQL differences between Solaris & Linux

From: Bradd Piontek <piontekdd_at_gmail.com>
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-l
Received on Thu Jul 24 2008 - 08:57:38 CDT

Original text of this message