
as a first step i'm forwarding this to the list, maybe someone has a quick idea what's going wrong... once i have some time, i'll also look into the situation. - attila ---------- Forwarded message ---------- From: Marshall McLuhan <marshall.mcluhan@gmx.net> Date: Tue, Nov 2, 2010 at 00:18 Subject: hu,dwim.rdbms + oracle 10g express + utf8 + input/read problem To: attila.lendvai@gmail.com Hi using sbcl + hu.dwim.rdbms.oracle and wanting UTF I have a hard time getting correct input: When using slime it crashes and the debugger starts whenever I ask for character data e.g. (execute [select "SYMTAG_KEY" symtag]) where column symtag_key is of type varchar2 or nvarchar2. (tried both) Maybe you have some quick pointers regarding hu.dwim.rdbms, oracle and utf or should I just avoid the trouble for now and go with ascii? When starting sbcl from the shell without emacs/slime I get empty strings like this: (Well now while in emacs preparing this mail some empty spaces show up as asian characters others as empty boxes) * (with-symdb (execute [select "SYMTAG_KEY" symtag])) 23:14 0 RDBMS DEBUG About to BEGIN transaction in database #<ORACLE {100434A001}> 23:14 0 &nbs p; RDBMS DEBUG Executing "SELECT SYMTAG_KEY FROM symtag" STYLE-WARNING: Undefined alien: "OCIGetInstantClientPackageName" STYLE-WARNING: Undefined alien: "OCIGetInstantClientPackageName" 23:14 0 RDBMS DEBUG Connecting in transaction #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> 23:14 0 RDBMS DEBUG Logging on in transaction #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> 23:14 0 RDBMS DEBUG Preparing command: "SELECT SYMTAG_KEY FROM symtag" 23:14 0 RDBMS DEBUG Fetching "??????????" from buffer at inde x 0 23:14 0 RDBMS DEBUG Fetched: "???" 23:14 0 RDBMS DEBUG Fetching "??????????" from buffer at index 0 23:14 0 RDBMS DEBUG Fetched: "????????" 23:14 0 RDBMS DEBUG About to COMMIT transaction #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> 23:14 0 RDBMS DEBUG Cleaning up Oracle transaction #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> to database #<ORACLE {100434A001}> 23:14 0 RDBMS DEBUG Calling logoff in transac tion #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> 23:14 0 RDBMS DEBUG Freeing environment handle of transaction #<#<STANDARD-CLASS NIL {1004CCC1A1}> :begin-executed-p #t {1003BFB6F1}> #<(AND (VECTOR T 8) (NOT SIMPLE-ARRAY)) {1003CAF34F}> * (setq a *) ; (SETQ SYMARENA-ORACLE::A *) ; ; caught WARNING: ; undefined variable: A ; ; compilation unit finished ; Undefined variable: ; A ; caught 1 WARNING condition #<(AND (VECTOR T 8) (NOT SIMPLE-ARRAY)) {1003CAF34F}> * (elt a 0) #<(AND (VECTOR T 1) (NOT SIMPLE-ARRAY)) {1003CAF46F}> * (elt a 1) #<(AND (VECTOR T 1) (NOT SIMPLE-ARRAY)) {1003CB4C6F}> * (elt (elt a 1) 0) "????????& quot; * (length a) 2 * (length (elt (elt a 1) 0)) 8 * (length (elt (elt a 0) 0)) 3 * Here are the relevant settings as I see it: *** 1. SBCL $ sb-impl::*default-external-format* :UTF-16 $ (with-database *symdb* (with-transaction (let ((db (hu.dwim.rdbms::database-of *transaction*))) (lst (hu.dwim.rdbms.oracle::connection-encoding-of db) (hu.dwim.rdbms::encoding-of db))))) (:UTF-16 :UTF-16) **** 2. Oracle 10 Express - sqlplus SQLPLUS> select symtag_key from symtag; SYMTAG_KEY ---------------------- foo chrismay SQLPLUS> describe symtag; Name Null? Type ----------------------------------------- -------- ---------------------------- SYMTAG_KEY NOT NULL NVARCHAR2(22) SYMTAG_CREATION_DATE NOT NULL TIMESTAMP(6) WITH TIME ZONE ** 2.1 http://localhost:8080/apex - about database National Language Parametersort by this column Value NLS_CALENDAR GREGORIAN NLS_CHARACTERSET AL32UTF8 NLS_COMP BINARY NLS_CURRENCY $ NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_DUAL_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_LANGUAGE AMERICAN NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_NCHAR_CONV_EXCP FALSE NLS_NUMERIC_CHARACTERS ., NLS_SORT BINARY NLS_TERRITORY AMERICA NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR *** 3. Shell chris@catch22:~$ locale LANG=de_DE.UTF-8 LC_CTYPE=de_DE.UTF-8 LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL= chris@catch22:~$ Regards, chris !DSPAM:4ccf4ae148588202753979!