是否有人知道是否可以配置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
谢谢!
答案 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的特定版本而异。