Как создать таблицу с именами столбцов и записями с Unicode Character в Oracle? - PullRequest
0 голосов
/ 08 января 2019

Я пробовал следующие запросы,

create table विद्यार्थी(आयडी int, नाव varchar(50), वर्ग varchar(10));
insert into विद्यार्थी values(1,'अक्षय','पहिली'); 
insert into विद्यार्थी values(2,'नारायण','दुसरी'); 

Это хорошо работает в MySQL, но не работает в Oracle. Oracle выдает ошибку как Invalid Character


Затем я попытался использовать имена столбцов на английском языке следующим образом с типом данных NVARCHAR2.

create table student(id int, name nvarchar2(50), class nvarchar2(50));
insert into student values(1,'अक्षय','पहिली'); 
insert into student values(2,'नारायण','दुसरी'); 

Нет ошибки, но когда я стреляю

select * from student;

После запуска запроса SELECT я получил значения из таблицы в виде перевернутых вопросительных знаков, как показано на прикрепленном скриншоте. Oracle 10g и Oracle 12c оба дают одинаковый результат.

Unicode Representation by Oracle 10g

  1. Итак, как я могу использовать имена столбцов с символами юникода в Oracle?
  2. Если я использовал английские имена столбцов с типом данных NVARCHAR2 и вставил значения символов Unicode, то почему я не получаю значения символов Unicode в результате запроса SELECT, как показано на скриншоте? Как разобраться в этом?

1 Ответ

0 голосов
/ 08 января 2019

В Oracle это должно быть возможно:

create table "विद्यार्थी" ("आयडी" integer, "नाव" varchar(50), "वर्ग" varchar(10));

Однако я бы порекомендовал «стандартные» символы, а затем использовал бы представление с деванагари:

create table MY_TABLE(ID integer, NAME varchar(50), CLASS varchar(10));

CREATE OR REPLACE VIEW "विद्यार्थी" AS
SELECT ID AS "आयडी", NAME AS "नाव", CLASS AS "वर्ग";

Примечание: вы также можете вставить данные в представление с помощью insert into "विद्यार्थी" values (1,'अक्षय','पहिली');

Есть ли у вас какой-либо другой клиент SQL, например, TOAD или SQL Developer, а не APEX в Internet Explorer? Кодировка символов может быть проблемой там.

...