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.