interface definition for CHAR (Oracle)
Author: yves.de.montmollin@aonhewitt.com (yves2m)
Hello, I try to access an existing table with a CHAR type ... table definition :
Name Data Type ---------------- ------------------------------ ID NUMBER(9,0) NOT NULL STATUS VARCHAR2(40 BYTE) CDATE DATE SUBJECT VARCHAR2(256 BYTE) MESSAGE VARCHAR2(2000 BYTE) TO_SERVER CHAR(1 BYTE)
In Uniface, I've a problem to get a CHAR type. the field TO_SERVER is defined as String, interface C1, (I tried to put a printscreen, but I don't see how to attach/upload a file) accorting to the documentation Oracle Data Packing.
Oracle Data Packing
Table 1. Mappings Between Uniface Packing Codes and Oracle Storage Format
Uniface Packing Codes
Oracle Storage Format
B1-B4
Char
C1-C255
Char
...
...
But when I generate the SQL for Oracle, the field is defined as VARCHAR2(1)
CREATE TABLE "MSG"( "ID" NUMBER(9), "STATUS" VARCHAR2(40), "CDATE" DATE, "SUBJECT" VARCHAR2(256), "MESSAGE" VARCHAR2(2000), "TO_SERVER" VARCHAR2(1), CONSTRAINT "MSGP1" PRIMARY KEY("ID"));
And if I try an export from the table, I get this Oracle error
I/O function: O, mode: 0, on file/table: MSG ORACLE Driver Error [-80]: Column has incorrect ORACLE storage format: Table MSG, Column TO_SERVER, expected storage format VARCHAR2, actual storage format is CHAR ORACLE Driver Error [-52]: Open driver request failed. 8074 - Copied from 'UD5:MSG.MODEL' to 'c:\\temp\\ewa\\msg.xml' total records/rows 0.
So, I understand there is an assignment somewhere that force CHAR to VARCHAR2 but I don't find it in the .asn Do you have an idea where is this setting, or how I can overrule this to get a CHA field ? Thanks in advance and regards Yves
Ingo