是否可以将Oracle会话/连接配置为自动大写字符串?

fel*_*cao 1 oracle

有没有人知道是否可以配置Oracle会话或连接,以便持久保存的每个字符串都自动大写?

例如,如果我调用这样的SQL:"INSERT INTO STUDENT(name)VALUES('john doe')"

我表中的信息将保持如下:

STUDENT
--------------------
ID   | 1
NAME | JOHN DOE
Run Code Online (Sandbox Code Playgroud)

我已经检查了这个条目,但找不到这样的东西:http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch3globenv.htm#sthref186

谢谢!

Jus*_*ave 5

没有会话级配置参数,没有.

您可以在STUDENT表上编写一个触发器,它会自动以大写形式存储数据,但您需要为每个表执行此操作.

CREATE TRIGGER trg_student
  BEFORE INSERT ON student
  FOR EACH ROW
BEGIN
  :new.name := upper( :new.name );
END;
Run Code Online (Sandbox Code Playgroud)

根据您尝试解决的问题,您可以设置会话的NLS设置以忽略区分大小写,以便字符串'John Doe is considered to be equal to the stringJOHN DOE`.这方面的选项,限制和缺点因Oracle的特定版本而异.