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

时间:2012-04-16 22:41:19

标签: oracle

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

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

我表格中的信息将保持不变:

STUDENT
--------------------
ID   | 1
NAME | JOHN DOE

我已检查此条目但找不到这样的内容:http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch3globenv.htm#sthref186

谢谢!

1 个答案:

答案 0 :(得分:5)

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

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

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

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