2017-01-10 42 views
0

我在Oracle数据库的employee表中插入了一行。现在我试图从该员工表中检索数据;但它给了我不同于我所输入的价值。oracle列中的隐形双引号

employee table (ID,Name,UniqueCode,Department) 
insert into employee values('emp1','John','TEST05897','PAYROLL'); 

select ID,Name,UniqueCode,Department from employee where ID='emp1'; 

以上查询返回"TEST05897"UniqueCode列;但我希望它是TEST05897。我想知道我的数据中是如何得到双引号的。我可以应用REPLACE()方法删除这些双引号;但我仍然需要知道结果集中的双引号是如何存在的。

+0

您正在使用哪个数据库?你已经标记了其中三个。我的猜测是,你只是从控制台看一些输出格式。也许引号是为了提醒你,它是varchar数据。 –

+0

Oracle数据库是 –

+0

引号是某种形式的工件。他们要么不在那里,要么他们在那里,但可以被忽略。 –

回答

3

我猜你正在使用sql devloper,你可能修改了一些我们不知道的东西,除非你提供给我们所有的细节。另外请尝试在sqlplus(命令提示符)中运行命令并查看是否正在执行。我已经在sqlplus中执行了所有内容,并且工作得很好。请在下面找到详细信息。

SQL> create table employee(id varchar2(10),name varchar2(20),uniquecode varchar2(20),department varchar2(20)) 
    2/

    Table created. 

SQL> desc employee 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
ID             VARCHAR2(10) 
NAME            VARCHAR2(20) 
UNIQUECODE           VARCHAR2(20) 
DEPARTMENT           VARCHAR2(20) 

SQL> insert into employee values('emp1','John','TEST05897','PAYROLL'); 

1 row created. 

SQL> commit; 

Commit complete. 

SQL> select * from employee; 

ID   NAME     UNIQUECODE   DEPARTMENT 
---------- -------------------- -------------------- -------------------- 
emp1  John     TEST05897   PAYROLL 

SQL> update employee set Department='ACCOUNT' where UniqueCode='TEST05897'; 

1 row updated. 

SQL> select * from employee; 

ID   NAME     UNIQUECODE   DEPARTMENT 
---------- -------------------- -------------------- -------------------- 
emp1  John     TEST05897   ACCOUNT