2014-02-07 2 views
0

, когда я обновляю columon (NVARCHAR2) в базе данных oracle с 64 символами (0005la_12111111111111112313_0005la_12111111111111112313_0005la_1) с помощью разработчика pl/sql, я могу успешно обновить. я выбираю это поле из SQLPLUS:Разработчик pl/sql не может отображать NVARCHAR2 с 64 символами

SQL> select pid from pidinfo where accountid=22735; 

pid 

0005la_12111111111111112313_0005la_12111111111111112313_0005la_1 
enter code here 

, но когда я использую SQL Developer PL/проверить результат, я обнаружил, что:

SQL> select pid from pidinfo where accountid=22735; 

pid 

0005la_12111111111111112313_0005la_12111111111111112313_0005la_ 

вы можете видеть, что есть ошибка, когда пл/sql для отображения NVARCHAR2 с 64 символами, pl/sql может отображать только 63 символа.

Это ошибка?


следующий SQL для воспроизведите:

create table PIDINFO 
(
    PIDID    NUMBER(10) not null, 
    PID    NVARCHAR2(64) not null, 
    ACCOUNTID   NUMBER(10) default 0 not null, 
); 
comment on column PIDINFO.PIDID 
    is 'pid id'; 
comment on column PIDINFO.PID 
    is 'pid'; 
comment on column PIDINFO.ACCOUNTID 
    is 'pid accountid'; 

insert into PIDINFO (PIDID,PID,ACCOUNTID) values (1,'wheat',22735); 

update pidinfo a set a.pid='0005la_12111111111111112313_0005la_12111111111111112313_0005la_1' where a.pid='wheat'; 
+2

Это не может быть. . Он показывает, какое значение имеет значение перед обновлением. Угадайте, что ваше обновление не работает –

+0

Просьба предоставить полный пример с 'CREATE/INSERT/SELECT', чтобы мы могли воспроизвести. Маловероятно, что вы нашли ошибку. Это либо проблема с отображением (последние символы обрезаны, чтобы вписаться в поле), либо проблема с несколькими сеансами. Каков результат 'select pid from pidinfo, где pid = '0005la_12111111111111112313_0005la_12111111111111112313_0005la_1''? –

+0

результат этого sql отличается при использовании pl/sql и sqlplus. при использовании pl/sql результат: SQL> select pid from pidinfo, где pid = '0005la_12111111111111112313_0005la_12111111111111112313_0005la_1'; PID 0005la_12111111111111112313_0005la_12111111111111112313_0005la_ при использовании sqlplus в результате получается: SQL> select pid from pidinfo где pid = '0005la_1211111111111112313_0005la_12111111111111112313_0005la_1'; PID 0005la_12111111111111112313_0005la_12111111111111112313_0005la_1 – malasang

ответ

0

имеет контракт с сторонником PL/SQL Developer, они дают мне причину, по которой "с помощью незаконной лицензии"

Смежные вопросы