-
Notifications
You must be signed in to change notification settings - Fork 361
Closed
Labels
Description
Discovered in unit testing due to no version pinning in the project's Pipfile. Locally (6.3.1) remains functional, while all database set up tasks fail in our CI pipeline on cx_Oracle==6.4.
Binding errors stating that positional and named binds cannot be intermixed when there are no positional binds being used.
Answer the following questions:
- What is your version of Python? Is it 32-bit or 64-bit?
$ python -V
Python 3.6.5
$ python -c 'import sys; print(sys.maxsize)'
9223372036854775807 # 64bit- What is your version of cx_Oracle?
Locally:
$ python -c 'import cx_Oracle; print(cx_Oracle.__version__)'
6.3.1Remote (issue causing)
$ python -c 'import cx_Oracle; print(cx_Oracle.__version__)'
6.4- What is your version of the Oracle client (e.g. Instant Client)? How was it
installed? Where is it installed?
$ ls /opt/oracle/
instantclient_12_2- What is your version of the Oracle Database?
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffe765d011a3 store/oracle/database-enterprise:12.2.0.1-slim "/bin/sh -c '/bin/ba…" 29 minutes ago Up 29 minutes (healthy) 5500/tcp, 127.0.0.1:XXXXX->1521/tcp inspiring_shtern- What is your OS and version?
$ uname -a
Darwin Jordens-MacBook-Pro.local 17.6.0 Darwin Kernel Version 17.6.0: Tue May 8 15:22:16 PDT 2018; root:xnu-4570.61.1~1/RELEASE_X86_64 x86_64
$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 10.13.5 (17F77)
Kernel Version: Darwin 17.6.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: Jorden’s MacBook Pro
User Name: Jorden Kreps (jordenkreps)
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 6 days 1:57- What compiler version did you use? For example, with GCC, run
gcc --version.
$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin- What environment variables did you set? How exactly did you set them?
N/A
- What exact command caused the problem (e.g. what command did you try to
install with)? Who were you logged in as?
$ pytest --cov <package_name>- What error(s) you are seeing?
6.3.1
...
<package_name>/tests/test_util.py ............... [100%]
...6.4
...
<package_name>/tests/test_util.py EEEEEE......... [100%]
...
self = <sqlalchemy.dialects.oracle.cx_oracle.OracleDialect_cx_oracle object at 0x7f977ca76550>
cursor = <cx_Oracle.Cursor on <cx_Oracle.Connection to SYSTEM@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=XXXXX))(CONNECT_DATA=(SID=ORCLCDB)(SERVICE_NAME=ORCLPDB1.localdomain)))>>
statement = 'SELECT table_name FROM all_tables WHERE table_name = :name AND owner = :schema_name'
parameters = {'name': 'MYTABLE', 'schema_name': 'MYUSER'}
context = <sqlalchemy.dialects.oracle.cx_oracle.OracleExecutionContext_cx_oracle object at 0x7f977cb570b8>
def do_execute(self, cursor, statement, parameters, context=None):
> cursor.execute(statement, parameters)
E cx_Oracle.ProgrammingError: positional and named binds cannot be intermixedPinning to 6.3.1 resolves the issue.
Peque, jay-tuckey, parruc and radzak