如何在 Oracle 中使用列名和带有 Unicode 字符的条目创建 table?

How to create table with column names and Entries with Unicode Character in Oracle?

我试过以下查询,

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 查询后,我从 Table 中得到值作为倒问号,如所附屏幕截图所示。 Oracle 10g 和 Oracle 12c,都给出相同的结果。

  1. 那么如何在 Oracle 中使用带有 unicode 字符的列名?
  2. 如果我使用数据类型为 NVARCHAR2 的英文列名并插入了 unicode 字符值,那么为什么我在 SELECT 查询结果中没有获得 unicode 字符值,如屏幕截图所示?如何解决这个问题?

在 Oracle 中这应该是可能的:

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

不过,我会推荐 "standard" 个字符,然后使用梵文视图:

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 开发人员而不是 Internet Explorer 中的 APEX?那里的字符编码可能是一个挑战。