Re: Problems connecting to an oracle legacy db

2014-06-04 Thread Ian
On Wednesday, June 4, 2014 2:38:34 AM UTC-6, Vittorio wrote:
>
> #models.py 
> ... 
> class magazzino_vista_lista(models.Model): 
> id_ordine = models.IntegerField(null=False, blank=False, 
> db_column='ID_ORDINE') 
> cod_magazzino_galileo = models.CharField(max_length=48, 
> db_column='COD_MAGAZZINO_GALILEO') 
> cod_magazzino_ext = models.CharField(max_length=48, 
> db_column='COD_MAGAZZINO_EXT') 
> qta = models.IntegerField(null=False, blank=False, db_column='QTA') 
> class Meta: 
> managed = False 
> db_table = u'noema.magazzino_vista_lista' 
> verbose_name_plural = "CC specifica ordini vista" 
>
> * See the real oracle table is named 'noema.magazzino_vista_lista' as 
> in the sql I called before under python * 
>
>
Django currently doesn't understand schemas, and it quotes and treats the 
"noema." as being part of the table name rather than a schema. There's a 
hacky way (which basically amounts to SQL injection by the developer) to 
make it quote the schema and table separately, but I recommend creating 
synonyms to your tables in the schema that Django actually connects to.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/e8e7b975-60a9-4e7b-84ce-5f78412fd08b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Problems connecting to an oracle legacy db

2014-06-04 Thread Vittorio
I have an Ubuntu linux  server on which I installed the oracle instanclient 
stuff to run a client of a remote legacy oracle database.

It works great!

#TNSNAMES.ORA
my_db=
(DESCRIPTION =
  (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 46.128.3.178)(PORT = 1521))
  )
  (CONNECT_DATA =
(SID = DANT)
  )
)

Trying with SQLPlus

victor@ubuntu:~$ sqlplus my_user/my_passw@my_db
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jun 4 09:57:04 2014
Copyright (c) 1982, 2013, Oracle.  All rights reserved

Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
SQL> 

... and with Python

>>> import cx_Oracle
>>> con = cx_Oracle.connect('my_user', 'my_passw', '46.128.3.178:/DANT')
>>> cur = con.cursor()
>>> cur.execute('select * from noema.magazzino_vista_lista')
>
>>> 
>>> for result in cur:
... print result
... 
(12, 'MAG0005240', '0005240', 1)
(12, 'MAG946', '946', 2)
(12, 'MAG0001930', '0001930', 3)
(17, 'MAGCARPIE008', 'CARPIE008', 1)
(17, 'MAGLETTEL0002', 'LETTEL0002', 1)
>>> 

That's all ok!

Now, on the same server,  I have a  django 1.6.2 project named 'myorac' and an 
application called 'noematica'

#settings.py 
..
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle', 
'NAME': 'my_db',  
'USER': 'my_user',  
'PASSWORD': 'my_passw',  
'HOST': '46.128.3.178',  
'PORT': '1521',  
},
}

#models.py
...
class magazzino_vista_lista(models.Model):
id_ordine = models.IntegerField(null=False, blank=False, 
db_column='ID_ORDINE')
cod_magazzino_galileo = models.CharField(max_length=48, 
db_column='COD_MAGAZZINO_GALILEO')
cod_magazzino_ext = models.CharField(max_length=48, 
db_column='COD_MAGAZZINO_EXT')
qta = models.IntegerField(null=False, blank=False, db_column='QTA')
class Meta:
managed = False
db_table = u'noema.magazzino_vista_lista'
verbose_name_plural = "CC specifica ordini vista"

* See the real oracle table is named 'noema.magazzino_vista_lista' as in 
the sql I called before under python *

#admin.py
.
admin.site.register(magazzino_vista_lista)


When I start my application via python manage.py runserver I get the following 
error in the browser at the very beginning

DatabaseError at /noematica/
ORA-00942: table or view does not exist
Request Method: GET
Request URL:http://10.20.0.1:7600/noematica/
Django Version: 1.6.2
Exception Type: DatabaseError
Exception Value:
ORA-00942: table or view does not exist
Exception Location: 
/usr/local/lib/python2.7/dist-packages/django/db/backends/oracle/base.py in 
execute, line 815


Why is that? I can't figure out what I made it wrong in the  definition of the 
database in settings.py or in the db_table definition in models.py
Please help
Vittorio

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/4E45C150-CF81-4927-B304-13D446260EDE%40de-martino.it.
For more options, visit https://groups.google.com/d/optout.