|how pass extended characters to a stored procedure by odbc when enable sqlserver syntax is enable [message #100007]
||Fri, 14 June 2002 11:45
Registered: June 2002
error: ORA-01756: quoted string not properly terminated|
une chaine entre apostrophhes ne se termine pas correctement
oracle Retrieving extended characters thru ODBC
PL/SQL procedure parameters
hi, i hope you can help to me.
I have a problem with french and german characters.
i have a little stored procedure than return what i'm passing to him.
see these example: (the second one work fine on plsql)
1) i created a new odbc dsn
2) i'm going into sqlserver migration tab to choose
Enable Exac Syntax.
3) i'm open Winsql (this is a odbc tools)
4) i'm write
exec ksp_test 0,'HéLLO ORACLE'
i receive this error:
Error: ORA-01756: quoted string not properly terminated
(State:S1000, Native Code: 6DC)
I trying to changed too the NLS_LANG in the registry
but without any success..
i got the same problem with
oracle 9 database with utf8 characters set.
oracle 8.1.7 with iso8859p1 characters set.
i trying all latest odbc driver from oracle website.
SQL> variable mytest refcursor;
SQL> exec ksp_test (0,'HéLLO ORACLE',:MYTEST);
PL/SQL procedure successfully completed.
SQL> PRINT MYTEST;
Your Database Value
CREATE OR REPLACE PACKAGE KSP_PLSQLRSETPKG
TYPE RCT1 IS REF CURSOR;
CREATE OR REPLACE PROCEDURE KSP_TEST (
PATCH INT DEFAULT 0,
RC1 IN OUT KSP_PLSQLRSETPkg.RCT1
OPEN RC1 FOR
SELECT PONC "Your Database Value" FROM DUAL;
i'm trying also different nls setting but no good result.
is working well on sqlplus but not by odbc..
i'm declare a variable and
v_variable := 'éä'
and the procedure return the good syntax...
i think is a odbc driver problem....
the driver don't want to accept a extended characters set by a parameters coming from the procedure.
can you confirm to me ..this is a major bug for the driver..
my procedure is very basic to make a little test.
did you try my procedure to be sure you have the same problem?
i try with a oracle instance utf8,WE8MSWIN1252 and
i got always the same problem.
if i write insert into test values ('äé');
everything is fine...but when i call the procedure...
the procedure don't want to accept any german..french or any extended characters...
i need to confirm to me is a bug from the oracle odbc driver or if is possible to help me to find a way to pass theses characters to a stored procedure from odbc driver..
our application is working by odbc driver.
thank you very much.
i'm pretty sure is a bug in the driver ...the bug is coming only when i select "ENABLE EXEC SYNTAX" IN THE DSN (SQLSERVER MIGRATION SECTION) ... i try with Shema Database and Owner and Empty and i got
always the same problem
exec KSP_TEST 0,'TéEST'
BUT IF I WRITE
CALL KSP_TEST (0,'TéEST')
if i select enable exec or i unselect enable exec...
the CALL KSP_TEST...... is always working properly.
BETWEEN THESE SYNTAX THE NLS_LANG IS NEVER CHANGED....
IS WORKING.....THE NLS_LANG IS GOOD.......because i make a little modification in procedure to be sure the INSERT IS inside the database CORRECTLY.
CREATE OR REPLACE PROCEDURE KSP_TEST
v_test := 'test';
INSERT INTO YYY VALUES (PONC);