It specifically says NCHAR is not usable *for unicode* until Oracle
9i.  (Showing my ignorance here: are you certain NVARCHAR2 uses
NCHAR?  Seems logical to me.)

The white paper further states: "No Unicode character set is supported
as the national character set prior to Oracle 9i".  I believe the "N"
in NVARCHAR2 stands for "national" so my best guess is you are correct
that NVARCHAR2 is useless in oracle 8 (as far as Unicode is
concerned).


I caught the Exception as we discussed earlier and then set
unicode_for_unicode = False in engine/default.py.

Now I'm getting a problem later with unicode:

Traceback (most recent call last):
  File "/home/rarch/tg2env/bin/paster", line 8, in <module>
    load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')
()
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 84, in run
    invoke(command, command_name, options, args[1:])
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 123, in
invoke
    exit_code = runner.run(args)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 68, in
run
    return super(AbstractInstallCommand, self).run(new_args)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 218, in run
    result = self.command()
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 456, in
command
    self, config_file, section,
self.sysconfig_install_vars(installer))
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 598, in
setup_config
    mod.setup_app, command, filename, section, vars)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 612, in
_call_setup_app
    func(command, conf, vars)
  File "/home/rarch/trunk/src/appserver/pylotengine/websetup.py", line
32, in setup_app
 
model.metadata.create_all(bind=config['pylons.app_globals'].sa_engine)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/schema.py", line
1958, in create_all
    bind.create(self, checkfirst=checkfirst, tables=tables)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1504, in create
    self._run_visitor(ddl.SchemaGenerator, entity,
connection=connection, **kwargs)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1535, in _run_visitor
    visitorcallable(self.dialect, conn,
**kwargs).traverse_single(element)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/sql/visitors.py",
line 77, in traverse_single
    return meth(obj, **kw)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/ddl.py",
line 36, in visit_metadata
    collection = [t for t in sql_util.sort_tables(tables) if
self._can_create(t)]
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/ddl.py",
line 29, in _can_create
    return not self.checkfirst or not
self.dialect.has_table(self.connection, table.name,
schema=table.schema)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/dialects/oracle/
base.py", line 626, in has_table
    name=self.denormalize_name(table_name),
schema_name=self.denormalize_name(schema))
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1109, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1186, in _execute_clauseelement
    return self.__execute_context(context)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1215, in __execute_context
    context.parameters[0], context=context)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1284, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor,
context)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1282, in _cursor_execute
    self.dialect.do_execute(cursor, statement, parameters,
context=context)
  File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.0.1-py2.6-linux-x86_64.egg/sqlalchemy/engine/
default.py", line 281, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.DatabaseError: (DatabaseError) ORA-12704: character set
mismatch
 'SELECT table_name FROM all_tables WHERE table_name = :name AND owner
= :schema_name' {'name': u'TG_PERMISSION', 'schema_name': u'ARC'}
install.sh: failed trying to run setup-app


I assume your suggestion that "types.Unicode() renders VARCHAR2, not
NVARCHAR2, when oracle 8 is detected" would fix this problem, correct?




On May 18, 1:33 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> so here is the proposal - types.Unicode() renders VARCHAR2, not NVARCHAR2, 
> when oracle 8 is detected.
>
> since NVARCHAR2 is essentially useless on oracle 8, correct ?
>
> when I used to use oracle 8 we used VARCHAR2 for unicode data.  i wasn't 
> aware of the N- types at that time.
>
> also the suite of changes here is going to roll in the "use_ansi" flag into 
> the oracle 8 detection, its a bit redundant to require it manually.
>
> On May 18, 2010, at 1:29 PM, Kent wrote:
>
>
>
> > There is a fairly short Oracle-published white paper on Unicode
> > support 
> > here:http://www.oracle.com/technology/tech/globalization/pdf/TWP_AppDev_Un...
>
> > It does state that starting with Oracle7 there was Unicode support and
> > lists a table of Oracle version, Character set and Unicode version.
> > It also states you can *not* store Unicode in the NCHAR datatype until
> > Oracle 9i.
>
> > On May 18, 1:23 pm, Kent Bower <k...@retailarchitects.com> wrote:
> >> No, this is what was causing "ORA-12704: character set mismatch":
>
> >> SQL> SELECT CAST('test unicode returns' AS NVARCHAR2(60)) AS anon_1 FROM
> >> DUAL;
> >> SELECT CAST('test unicode returns' AS NVARCHAR2(60)) AS anon_1 FROM DUAL
> >>              *
> >> ERROR at line 1:
> >> ORA-12704: character set mismatch
>
> >> On 5/18/2010 1:17 PM, Michael Bayer wrote:
>
> >>> Sorry, I meant NVARCHAR2.
>
> >>> SELECT CAST('test unicode returns' AS NVARCHAR2(60)) AS anon_1 FROM DUAL
>
> >>> works ?  or no ?
>
> >>> On May 18, 2010, at 12:17 PM, Kent wrote:
>
> >>>> Oops, my bad, I didn't notice you that statement changed NVARCHAR2 to
> >>>> NVARCHAR:
>
> >>>> Here is that result:
> >>>> =============================
> >>>> SQL>  SELECT CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1
> >>>> FROM DUAL
> >>>>   2  ;
> >>>> SELECT CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1 FROM
> >>>> DUAL
> >>>>                                               *
> >>>> ERROR at line 1:
> >>>> ORA-00907: missing right parenthesis
> >>>> =============================
>
> >>>> On May 18, 12:15 pm, Kent<k...@retailarchitects.com>  wrote:
>
> >>>>>> SELECT CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1 FROM DUAL
>
> >>>>>> then it seems like either that fails directly, or it fails when the 
> >>>>>> client gets a hold of it.   See what happens with that statement.   
> >>>>>> Not sure that Oracle 8 has NVARCHAR which might be the issue.
>
> >>>>> Please see the beginning of my previous post, that is the statement
> >>>>> creating the "ORA-12704: character set mismatch"
>
> >>>>> So, you intend to change exc.DBAPIError to Exception? (That is
> >>>>> actually exactly what I had just done as a workaround until I heard
> >>>>> back from you)
>
> >>>>> --
> >>>>> You received this message because you are subscribed to the Google 
> >>>>> Groups "sqlalchemy" group.
> >>>>> To post to this group, send email to sqlalch...@googlegroups.com.
> >>>>> To unsubscribe from this group, send email to 
> >>>>> sqlalchemy+unsubscr...@googlegroups.com.
> >>>>> For more options, visit this group 
> >>>>> athttp://groups.google.com/group/sqlalchemy?hl=en.
>
> >>>> --
> >>>> You received this message because you are subscribed to the Google 
> >>>> Groups "sqlalchemy" group.
> >>>> To post to this group, send email to sqlalch...@googlegroups.com.
> >>>> To unsubscribe from this group, send email to 
> >>>> sqlalchemy+unsubscr...@googlegroups.com.
> >>>> For more options, visit this group 
> >>>> athttp://groups.google.com/group/sqlalchemy?hl=en.
>
> >> --
> >> You received this message because you are subscribed to the Google Groups 
> >> "sqlalchemy" group.
> >> To post to this group, send email to sqlalch...@googlegroups.com.
> >> To unsubscribe from this group, send email to 
> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> For more options, visit this group 
> >> athttp://groups.google.com/group/sqlalchemy?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalch...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > sqlalchemy+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/sqlalchemy?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to