On Sep 21, 2012, at 12:03 PM, Michael Bayer <mike...@zzzcomputing.com> wrote:

> 
> how are these tables represented in the default schema of that database 
> connection?  if they are referred to via oracle synonyms, then they don't 
> exist there as tables, they're in some other schema.
> 
> The Oracle dialect features a helper called "oracle_resolve_synonyms", which 
> will cause the dialect to resolve a synonym-named table, but that only works 
> within the Table() call itself, that is, Table("somename", autoload=True, 
> oracle_resolve_synonyms=True).   Right now the metadata.reflect() call does 
> not make use of the "resolve_synonyms" feature.
> 
> So assuming this is what's going on, you'd need to specify the schema where 
> the tables are actually present, such as:
> 
> md.reflect(schema="mytables")
> 
> when you do that, you'll get Table objects back which will include "mytables" 
> as the "schema" argument.  When these Table objects are used, you'll see the 
> schema explicitly referenced, that is, "select * from myschema.mytable".

The tables are created via simple `CREATE TABLE` statements executed by the 
user in question. Unless somebody has done something very tricky that I don't 
know about, no synonyms whatsoever are in use. I also tried 
`md.reflect(schema='user')` and got the same result. I also tried connecting as 
a system-level user and specifying the schema argument, on the theory that 
maybe the user who created the tables lacked some obscure Oracle privilege 
required for reflection to do its thing; that didn't work, either.

I suppose it's possible I have some weird edge case with configuration 
weirdness, because I haven't been able to reproduce with an isolated test case. 
Do you suppose you could give me a 50,000 ft. view of what the reflect() 
command does on the SQL side of things? That way I can try to dig in against 
the legacy schema where I'm seeing the problem.

I expect I'll be lurking in #sqlalchemy on Freenode for most of the day, as 
well.

Thanks a lot for the great tool, and the help.

--Hank

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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