Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
A Python script against IDS 9.40.UC1 on Linux failed with SQLCODE -9700 "Routine (plus) ambiguous - more than one routine resolves to given signature". One suggestion was that a user-defined 'plus' function was defined more than once – use dbschema to find and drop the duplicate, or qualify the routine with its owner/schema. The poster then narrowed it to an addition of two bind variables in a WHERE clause (rowid <= (:2 + :3)); removing it worked, and the same SQL ran fine on Solaris. Art Kagel suspected untyped host variables confusing the engine and finally advised opening a case with IBM. No resolution is recorded.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Hi Experts,
We have IDS9.40UC1 on Linux. We run the python scripts that automatically run
and create the database and then perform DML operations.
Now when we run one of the tool, it gives error:
Traceback (most recent call last):
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefile.py",
line 385, in ?
if __name__ == "__main__": main()
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefile.py",
line 378, in main
sfc.deleteRecordsFromDb()
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefile.py",
line 213, in deleteRecordsFromDb
cur.execute("""
_informixdb_V_2_2_1.DatabaseError: SQLCODE -9700 in EXECUTE:
IX000: Routine (plus) ambiguous - more than one routine resolves to given
signature.
We run this tool serveral times but did not get any error. But this time we
are getting the above error.
Please suggest something to resolve the issue.
Thanks in Advance
Gulshan
Hi,
You seem to have a function named plus in the database. This function is
multiply defined (normally be different users/schema).
Use dbschema to find out which routines exist and drop one of them.
As an alternative: use the whole name of the routine (including
schema/user prefix).
Marcus
-----Original Message-----
From: GULSHAN KUMAR [mailto:gulshank@infotechsw.com]
Sent: Tuesday, November 13, 2007 10:51 AM
To: ids@iiug.org
Subject: IX000: Routine (plus) ambiguous - more than one ro [10357]
Hi Experts,
We have IDS9.40UC1 on Linux. We run the python scripts that
automatically run and create the database and then perform DML
operations.
Now when we run one of the tool, it gives error:
Traceback (most recent call last):
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefil
e.py",
line 385, in ?
if __name__ == "__main__": main()
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefil
e.py",
line 378, in main
sfc.deleteRecordsFromDb()
File
"/export/local/cdbuild/rbin/TB_07_11_50/c_gdfir_ascii_postalpointsidefil
e.py",
line 213, in deleteRecordsFromDb
cur.execute("""
_informixdb_V_2_2_1.DatabaseError: SQLCODE -9700 in EXECUTE:
IX000: Routine (plus) ambiguous - more than one routine resolves to
given signature.
We run this tool serveral times but did not get any error. But this time
we are getting the above error.
Please suggest something to resolve the issue.
Thanks in Advance
Gulshan
************************************************************************
*******
Forum Note: Use "Reply" to post a response in the discussion forum.
After troubleshooting we found that the error occured just because of the sum
condition in where clause i.e (rowid <= (:2 + :3)).
The below is the statement.
DELETE FROM attribute WHERE rowid > :1) and (rowid <= (:2 + :3))
When we tried to modify the script and remove the above mentioned condition
then it is running fine.
Now my question is that whether there is any bug in UC1 that does not support
this type of conditions or issue related to some library (may be some library
is missing or corrupted).
Please suggest to solve the problem.
Thanks is Advance
Gulshan
↪ replying to GULSHAN
ART KAGEL, — — source: IIUG Forums & Mailing Lists
What are :1, :2, & :3? AFAIK colons are only permitted in SQL as separators
between databasename and table name, doubled in an explicit type cast, and as
a field separator in a DATETIME or INTERVAL literal value. If these are place
holders for variables/replaceable parameters in your host language holding
ROWID values fetched previously (though I'm not familiar with any such
language) it may be that the language is not strongly typed and the engine is
confused about what host variable types are to be represented at runtime.
Art S. Kagel
----- Original Message -----
From: Gulshan Kumar <ids@iiug.org>
To: ids@iiug.org
At: 11/14 23:23:18
After troubleshooting we found that the error occured just because of the sum
condition in where clause i.e (rowid <= (:2 + :3)).
The below is the statement.
DELETE FROM attribute WHERE rowid > :1) and (rowid <= (:2 + :3))
When we tried to modify the script and remove the above mentioned condition
then it is running fine.
Now my question is that whether there is any bug in UC1 that does not support
this type of conditions or issue related to some library (may be some library
is missing or corrupted).
Please suggest to solve the problem.
Thanks is Advance
Gulshan
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
Here :1, :2, :3 are bind variables but the issue is that when we use plus (+)
in any sql statement it throws the error:
Routine (plus) ambiguous - more than one routine resolves to given signature.
The same command that i have tested on the IDS 9.40 UC1 on solaris server then
it is working fine but when i run the same command on IDS 9.40 UC1 on Linux
server then only it throws error.
Now i have two queries:
1. Whether there is different setup of IDS 9.40 UC1 for Solaris and Linux or
we can copy the binaries of IDS on Solaris to Linux.
2. Is there any library missing or corrupted?
Kindly answer the above queries to resolve the issue.
Thanks
Gulshan
Time to open a case with IBM.
Art S. Kagel
On Nov 15, 2007 11:03 PM, GULSHAN KUMAR <gulshank@infotechsw.com> wrote:
> Here :1, :2, :3 are bind variables but the issue is that when we use plus
> (+)
> in any sql statement it throws the error:
>
> Routine (plus) ambiguous - more than one routine resolves to given
> signature.
>
> The same command that i have tested on the IDS 9.40 UC1 on solaris server
> then
> it is working fine but when i run the same command on IDS 9.40 UC1 on
> Linux
> server then only it throws error.
>
> Now i have two queries:
>
> 1. Whether there is different setup of IDS 9.40 UC1 for Solaris and Linux
> or
> we can copy the binaries of IDS on Solaris to Linux.
>
> 2. Is there any library missing or corrupted?
>
> Kindly answer the above queries to resolve the issue.
>
> Thanks
> Gulshan
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.