【问题标题】:Why am I getting the "SQL0134N Improper use of a string column..." error with my query?为什么我的查询出现“SQL0134N 字符串列使用不当...”错误?
【发布时间】:2020-03-29 07:05:29
【问题描述】:

我正在尝试从 Juptyter Notebook 上的 CHICAGO_CRIME_DATA 表中获取“在加油站位置记录了独特类型的犯罪”。

%sql select DISTINCT PRIMARY_TYPE from CHICAGO_CRIME_DATA WHERE LOCATION_DESCRIPTION = 'GAS STATION';

PRIMARY_TYPELOCATION_DESCRIPTION 是列名。 我在 IBM DB2 中操作。它正在产生错误。

ibm_db_sa://ddk87262:***@dashdb-txn-sbox-yp-lon02-01.services.eu-gb.bluemix.net:50000/BLUDB

(ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0134N 字符串列、主变量、常量或函数“PRIMARY_TYPE”的使用不当。 SQLSTATE=42907 SQLCODE=-134

[SQL:从 CHICAGO_CRIME_DATA WHERE LOCATION_DESCRIPTION = 'GAS STATION'中选择 DISTINCT PRIMARY_TYPE;]

(此错误的背景:http://sqlalche.me/e/f405

我已经仔细检查了列名。如果我不使用 Distinct 函数,代码会显示结果(带有冗余行)。

什么会导致这个错误?

【问题讨论】:

    标签: db2 jupyter db2-luw dashdb


    【解决方案1】:

    检查 PRIMARY_TYPE 列的 Db2 列数据类型。

    如果您有权访问,您可以在syscat.columns 中查找您的表以查看 PRIMARY_TYPE 的列数据类型。您也可以使用 describe table CHICAGO_CRIME_DATAcreate table 语句也可能会记录在您的表中,以显示 Db2 列数据类型。

    您可以查看该错误消息 SQL0134N here 的详细信息。

    列数据类型很可能是 CLOB、DBCLOB、BLOB、LONG VARCHAR 或 LONG VARGRAPHIC 之一,而 DISTINCT 不允许使用这些数据类型。

    您可以通过从列中提取一些字符(例如 substr 等)并转换为 CHAR 或 VARCHAR 来解决此问题,然后在此类型上使用 distinct。

    【讨论】:

      猜你喜欢
      • 2021-10-20
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多