В настоящее время я переношу C-приложение из RdB (OpenVMS) в Oracle 11 (Linux). Я теперь наткнулся на разницу между двумя системами баз данных.ms Oracle: Избегайте пустого заполнения в Embedded SQL
Пример:
create table MYTAB(id number(13), name varchar2(10)) ;
Содержание
Id Name
1 Smith
2 Smith<blank> // trailing blank after Smith
Когда я выбираю имена в Embedded SQL, Oracle добавляет конечные пробелы до длины моей переменной хоста, то есть, два имени не может быть различен. Даже если я TRIM имя, Oracle добавляет пробелы.
Но с Select-Заявлением по имени столбца я должен дать точное количество пробелов:
select id from MYTAB where name ='Smith' -> gives Id 1
select id from MYTAB where name ='Smith ' -> gives Id 2
Это делает его очень трудно для меня, чтобы обрабатывать данные, потому что не может отличаться количеством завершающих пробелов из мой выбор.
Есть ли способ остановить Oracle от пустого заполнения?
Большое спасибо заранее Йорг
невозможно, что Oracle будет прокладочные пробелы в ** ** VARCHAR2 колонки типа. Это происходит, только если у вас есть тип ** CHAR **. Если у вас есть такие значения, то единственной причиной является то, что сами данные хранятся в виде пустых дополнений. –