Consultor Eletrônico



Kbase P77851: Error 447 when querying over ORACLE DataServer
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/23/2004
Status: Unverified

FACT(s) (Environment):

Windows 2000

FACT(s) (Environment):

Progress 9.1D

FACT(s) (Environment):

ORACLE

SYMPTOM(s):

Error 447 when querying over ORACLE DataServer

Did not find op <operator> in transop. (447)

CAUSE:

Table accessed by the query has a name that is a Progress non-reserved keyword.

The following (tested with 9.1D08 on Windows 2000 with ORACLE 9.2) illustrates the behaviour -

1. SQLPlus >

drop user testuser cascade;
create user testuser identified by testuser;
grant dba to testuser;
commit;

2. prodb sports sports
3. prowin32 -1 sports, migrate to oracle as testuser.

4. SQLPlus (as testuser) >

CREATE TABLE position (
position INTEGER NOT NULL PRIMARY KEY,
otherField VARCHAR(40)
);
commit;

Table is created ok.

5. prowin32 -p corasports.p
6. Selected the ORACLE database as working database.
7. DataServer > ORACLE Utilities > Update/Add Table Definitions to update
the schemaholder.

8. Running -

&SCOPED-DEFINE TAB POSITION

DEFINE VARIABLE find-qry AS HANDLE NO-UNDO.

CREATE QUERY find-qry.
find-qry:SET-BUFFERS(BUFFER {&TAB}:handle).
find-qry:QUERY-PREPARE("FOR EACH {&TAB} WHERE RECID({&TAB}) = 0 NO-LOCK").

returns -

Did not found op 3744 in transop. (447)

FIX:

As a workaround, rename the affected table so that it doesn't have the same name as a Progress non-reserved keyword.