#29938: "int() argument must be a string or a number, not 'list'" error oracle 
12.1
python
-------------------------------------+-------------------------------------
     Reporter:  kono10               |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.11
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  oracle, oracle       |             Triage Stage:
  12.1, python 2.7                   |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by kono10:

Old description:

> When creating an initial migration in a new python project "python
> manage.py migrate" I get the following error int() argument must be a
> string or a number, not 'list'. I am using an oracle db version 12.1. I
> was able to fix the error by chancing line 245 in lib/python2.7/site-
> packages/django/db/backends/oracle/operations.py
>
> **from**
>
> def fetch_returned_insert_id(self, cursor):
>         return int(cursor._insert_id_var.getvalue())
>
> **to**
>
> def fetch_returned_insert_id(self, cursor):
>     return int(cursor._insert_id_var.getvalue()[0])
>

> ---- full error message
>
> **Operations to perform:
>   Apply all migrations: admin, auth, contenttypes, sessions
> Running migrations:
>   Applying contenttypes.0001_initial...Traceback (most recent call last):
>   File "manage.py", line 22, in <module>
>     execute_from_command_line(sys.argv)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/core/management/__init__.py", line 364, in
> execute_from_command_line
>     utility.execute()
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/core/management/__init__.py", line 356, in execute
>     self.fetch_command(subcommand).run_from_argv(self.argv)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/core/management/base.py", line 283, in
> run_from_argv
>     self.execute(*args, **cmd_options)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/core/management/base.py", line 330, in execute
>     output = self.handle(*args, **options)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/core/management/commands/migrate.py", line 204, in
> handle
>     fake_initial=fake_initial,
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/migrations/executor.py", line 115, in migrate
>     state = self._migrate_all_forwards(state, plan, full_plan, fake=fake,
> fake_initial=fake_initial)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/migrations/executor.py", line 145, in
> _migrate_all_forwards
>     state = self.apply_migration(state, migration, fake=fake,
> fake_initial=fake_initial)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/migrations/executor.py", line 250, in
> apply_migration
>     self.recorder.record_applied(migration.app_label, migration.name)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/migrations/recorder.py", line 73, in
> record_applied
>     self.migration_qs.create(app=app, name=name)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/query.py", line 394, in create
>     obj.save(force_insert=True, using=self.db)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/base.py", line 808, in save
>     force_update=force_update, update_fields=update_fields)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/base.py", line 838, in save_base
>     updated = self._save_table(raw, cls, force_insert, force_update,
> using, update_fields)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/base.py", line 924, in _save_table
>     result = self._do_insert(cls._base_manager, using, fields, update_pk,
> raw)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/base.py", line 963, in _do_insert
>     using=using, raw=raw)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/manager.py", line 85, in manager_method
>     return getattr(self.get_queryset(), name)(*args, **kwargs)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/query.py", line 1079, in _insert
>     return query.get_compiler(using=using).execute_sql(return_id)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/models/sql/compiler.py", line 1119, in
> execute_sql
>     return self.connection.ops.fetch_returned_insert_id(cursor)
>   File
> "/Users/jkonovsky/development/web_apps_main/mago_wd/magoenv/lib/python2.7
> /site-packages/django/db/backends/oracle/operations.py", line 245, in
> fetch_returned_insert_id
>     return int(cursor._insert_id_var.getvalue())
> TypeError: int() argument must be a string or a number, not 'list'
> **

New description:

 When creating an initial migration in a new python project "python
 manage.py migrate" I get the following error int() argument must be a
 string or a number, not 'list'. I am using an oracle db version 12.1. I
 was able to fix the error by chancing line 245 in lib/python2.7/site-
 packages/django/db/backends/oracle/operations.py

 **from**
 {{{
 def fetch_returned_insert_id(self, cursor):
       return int(cursor._insert_id_var.getvalue())
 }}}

 **to**

 {{{
 def fetch_returned_insert_id(self, cursor):
         return int(cursor._insert_id_var.getvalue()[0])
 }}}

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29938#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.371a351dab1784e3c515d056f0a44911%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to