1. Ganpati More
  2. PowerBuilder
  3. Sunday, 30 April 2023 15:38 PM UTC

Hi,

We are using PowerBuilder version 2017 R3 Build 1858 & recently upgraded the Oracle database server from Oracle 12 to Oracle 19c.

I was able to connect to database without any issue but while calling the function/stored procedure with parameter as Varchar2_Table type, getting below error -

*** ERROR 932 *** (rc -1) : ORA-00932: inconsistent datatypes: expected %s got %s.

Is PowerBuilder version I am using is not compatible with Oracle 19c.

Do I need to upgrade PowerBuilder version? If yes, which version? Also, will it impact my PowerBuilder license? 

Kindly help me on this.

Thanks.

Andreas Mykonios Accepted Answer Pending Moderation
  1. Friday, 5 May 2023 06:22 AM UTC
  2. PowerBuilder
  3. # 1

Hi.

I guess that varchar2_table is a type defined in oracle. Something like that:

TYPE varchar2_table IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;

If I'm right I have doubts that powerbuilder could handle such a result type. It's the same with functions / procedures that return / out rec or collections. I don't believe powerbuilder can handle those.

Andreas.

Comment
  1. Andreas Mykonios
  2. Friday, 5 May 2023 11:02 AM UTC
Sorry, now I understand that this function expect as input a varchar2_table. You will have to change that... You may have to wrap that function to another that will accept as input a datatype that powerbuilder can handle and the "parse" that somehow to a varchar2_table in this new function to finally call the original one.

Andreas.
  1. Helpful
  1. Andreas Mykonios
  2. Friday, 5 May 2023 11:04 AM UTC
Currently, what is the argument you pass when calling that function from PB? Is it a string array?

Andreas.
  1. Helpful
  1. Ganpati More
  2. Friday, 5 May 2023 14:52 PM UTC
Thanks for the prompt response,



In PB, its string array and long array & in Oracle 19c is DBMS_SQL.VARCHAR2_Table & DBMS_SQL.NUMBER_Table.



DBMS_SQL.VARCHAR2_Table => DBMS_SQL is a package that provides an interface to use dynamic SQL to parse any data manipulation language (DML) or data definition language (DDL) statement using PL/SQL.

VARCHAR2_Table is a datatype that holds the varchar2 array & NUMBER_Table.is data type that holds number array.



  1. Helpful
There are no comments made yet.
mike S Accepted Answer Pending Moderation
  1. Monday, 1 May 2023 13:15 PM UTC
  2. PowerBuilder
  3. # 2

"function/stored procedure with parameter as Varchar2_Table type, getting below error -"

 

 

what datatype is Varchar2_Table ? do you mean varchar2 datatype?

is it a function/procedure?

does it work when you call it using something other than oracle?

if so, what datatype do you use ?

 

 

 

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Sunday, 30 April 2023 21:28 PM UTC
  2. PowerBuilder
  3. # 3

Hi John;

    FYI: O19C compliance was added to PB 2017 R3 in build 1915 (Dec 2019) and PB 2019 build 2170 (Dec 2019). Both of those releases were MR's.

  You are correct in that there were O19C DB driver updates well into the PB 2019 Rx editions. I would recommend either using R3 or move directly to PB 2022.

Regards ... Chris

Comment
  1. John Fauss
  2. Monday, 1 May 2023 14:09 PM UTC
Thanks for the clarification, Chris!

My primary goal in responding to Ganpati's question was to show him (and others) where one can look to answer this type of question on your own. I neglected to examine the highlighted enhancements documented in each maintenance release, so i appreciate you doing so.
  1. Helpful
  1. Ganpati More
  2. Wednesday, 3 May 2023 21:22 PM UTC
Thanks Chris/ Thanks John for quick help.



I upgraded to PowerBuilder version 2017 R3 Build 1915.



Do I need to install Oracle 19c 32-bit client (Since PowerBuilder is 32-bit application)?

Also, do I need to update any setup in environment variables?
  1. Helpful
  1. John Fauss
  2. Wednesday, 3 May 2023 21:47 PM UTC
My understanding is that yes, you need to install the 32-bit Oracle client in order to be able to access Oracle databases from within the PowerBuilder Integrated Development Environment (IDE). If you create/deploy a 64-bit PB application that uses Oracle, you will also need to install the 64-bit Oracle client. Good luck with your project(s)!
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Sunday, 30 April 2023 19:36 PM UTC
  2. PowerBuilder
  3. # 4

Hi, Ganpati - 

PB 2017 R3 supports Oracle 10g via the O10 interface and Oracle 11g and 12c via the ORA interface. This information is available online in the "Connecting to Your DataBase" publication, under "Working with Native Database Interfaces" -> "Using Oracle" -> "Supported Versions for Oracle":

    https://docs.appeon.com/pb2017r3/connecting_to_your_database/ch11s01.html

Examining this documentation page for subsequent versions, they show the ORA interface was enhanced to support Oracle 19c in PB 2019 R2:

    https://docs.appeon.com/pb2019r2/connecting_to_your_database/ch11s01.html

If you are to upgrade PB, I suggest you upgrade to the latest version and maintenance release. There have been a lot of enhancements and bug fixes made to PowerBuilder since version 2017 R3.

Best regards, John

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.