使用JupyterLab SQL Magic throw连接到DB2z编程错误:“ CURRENT”无效

时间:2018-12-28 10:08:46

标签: python db2 jupyter

我尝试设置Jupyter Notebook以使用SQL Magic(%和%%表示法)访问IBM DB2z数据库。

我按照本教程安装DB2 SQLAlchemy驱动程序: https://blog.4loeser.net/2016/11/sql-magic-in-notebooks-in-ibm-data.html

现在我在Jupyter Lab中的代码如下:

<template>
    <div class="modal">
        <ul>
            <li v-for="receipt in receipts">{{ receipt.date }} {{ receipt.email }} {{ receipt.item }}</li>
        </ul>
    </div>
</template>
<script>
export default {
    props: [receipts],
    data() {
        return {
            receipts: [],
            receipt: {
                id: '',
                date: '',
                email: '',
                item: ''
            }
        }
    }
}
</script>

但是会导致以下错误:

!pip install --user ipython-sql 
!pip install --user ibm_db
!pip install --user ibm_db_sa

import getpass
import ibm_db
import ibm_db_sa
import sqlalchemy

user = input("User: ")
passw = getpass.getpass("Passwort: ")

# loads the SQL magic extensions
%load_ext sql
%sql db2+ibm_db://$user:$passw@xxx.xxx.xx:55555/XXX

作为使用熊猫的实现,我可以排除用户名密码或驱动程序中的错误:

(ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: 
SQLNumResultCols failed: [IBM][CLI Driver][DB2] SQL0206N  "CURRENT" is 
not valid in the context where it is used.  SQLSTATE=42703 SQLCODE=-206 
(Background on this error at: http://sqlalche.me/e/f405)

Connection info needed in SQLAlchemy format, example:
           postgresql://username:password@hostname/dbname
           or an existing connection: dict_keys([])

关键字CURRENT似乎存在问题,但在这种情况下,我无法弄清pandas和SQL Magic之间的区别。

2 个答案:

答案 0 :(得分:0)

这可能是ibm_db_sa模块中的已知问题。 请参阅此issue,目前看来它正在等待修复。 通过github而不是stackoverflow追逐它可能是明智的。

答案 1 :(得分:0)

我建议将ibm_db与ibm_db_dbi包装器一起使用。请查看我的db2帖子以获取更好的解释