我已经搜索过,但似乎找不到我正在寻找的东西。我在 Oracle 中运行 PL/SQL 脚本,并尝试使用 MySQL ODBC 5.2 Unicode 驱动程序通过数据库链接将记录插入 MySQL 中的表中。
该链接工作正常,我可以使用它在 Oracle 中进行复杂的查询,并对那里的记录进行各种插入和更新。
它失败的地方是尝试将记录插入到具有位(1)类型列的 MySQL 表中。
它基本上是一个用于循环的游标,插入语句看起来像:
INSERT INTO "app_user"@mobileapi (USERNAME, VERSION, ACCOUNT_EXPIRED, ACCOUNT_LOCKED, PASSWD, PASSWORD_EXPIRED)
VALUES (CU_rec.USERNAME, CU_rec.VERSION, CU_rec.ACCOUNT_EXPIRED, CU_rec.ACCOUNT_LOCKED, CU_rec.PASSWD, CU_rec.PASSWORD_EXPIRED)
一些目标列,如ACCOUNT_EXPIRED
、ACCOUNT_LOCKED
等是bit(1)
MySQL 中的列。鉴于我可以将游标中的数据类型转换为CU_rec
我在 Oracle 中想要的几乎任何东西,我怎样才能将它们插入到目标中?我已经尝试了我能想到的一切,我只是不断得到:
错误报告:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[MySQL][ODBC 5.2(w) Driver][mysqld-5.6.10]Data too long for column 'ACCOUNT_EXPIRED' at row 1 {HY000,NativeErr = 1406}
ORA-02063: preceding 2 lines from MOBILEAPI
ORA-06512: at line 44
28500. 00000 - "connection from ORACLE to a non-Oracle system returned this message:"
*Cause: The cause is explained in the forwarded message.
*Action: See the non-Oracle system's documentation of the forwarded
message.
任何帮助都将不胜感激。