【发布时间】:2019-07-29 14:32:59
【问题描述】:
在 Oracle SQL Plus 中,在创建表/插入记录时使用复制命令总是将表 CHAR /VARCHAR2 列转换为 BYTE 格式并导致长度不匹配问题,因此我无法重新复制到我的原始表。
在 SESSION 和 sqlnet.ora 中尝试了以下设置,但没有帮助
ALTER SESSION SET NLS_LENGTH_SEMANTICS = CHAR;
已连接。
SQL> DESC DDD1;
Name Null? Type
----------------------------------------- -------- ----------------------------
ROW_ID NOT NULL VARCHAR2(15 CHAR)
PRIV_FLG NOT NULL CHAR(1 CHAR)
SQL> COPY TO USER/PASS@DB CREATE DDD12 USING SELECT * FROM DDD1;
数组获取/绑定大小为 15。(数组大小为 15) 完成后将提交。 (复制提交为 0) 最大长尺寸为 80。(长为 80) 表 DDD12 已创建。
从 DEFAULT HOST 连接中选择了 5036 行。 5036 行插入 DDD12。 在 USER/PASS@DB 处将 5036 行提交到 DDD12。
SQL> DESC DDD12;
Name Null? Type
----------------------------------------- -------- ----------------------------
ROW_ID NOT NULL VARCHAR2(60)
PRIV_FLG NOT NULL CHAR(4)
实际应该是 DDD1 表的副本。
【问题讨论】:
-
但同样的命令在 SQL Developer 中工作。
标签: sql oracle copy oracle-sqldeveloper sqlplus