SQL> UPDATE TRANSACTION_DETAILS SET Price = dbms_crypto.encrypt(utl_i18n.string_to_raw(Price||' ', 'AL32UTF8'), 2, utl_i18n.string_to_raw('251251', 'AL32UTF8')); UPDATE TRANSACTION_DETAILS SET Price = dbms_crypto.encrypt(utl_i18n.string_to_raw(Price||' ', 'AL32UTF8'), 2, utl_i18n.string_to_raw('251251', 'AL32UTF8')) * ERROR at line 1: ORA-00932: inconsistent datatypes: expected NUMBER got BINARY怎么解决
时间: 2023-12-03 21:03:44 浏览: 146
MySQL.rar_chm_mySql chm_sql_sql .chm_sql chm
这个错误是由于 `Price` 字段的数据类型不是 `NUMBER`,而是二进制类型导致的。
你需要先将 `Price` 转换为 `NUMBER` 类型,然后再进行加密操作。你可以尝试下面的 SQL 语句:
```
UPDATE TRANSACTION_DETAILS SET Price = dbms_crypto.encrypt(utl_i18n.string_to_raw(to_char(Price)||' ', 'AL32UTF8'), 2, utl_i18n.string_to_raw('251251', 'AL32UTF8'));
```
这里使用了 `to_char()` 函数将 `Price` 转换为字符串,然后再进行加密操作。你可以根据实际情况修改该语句。
阅读全文