Oracle 甲骨文:如何;不变的;会话参数?
我正在对进行不区分大小写的查询Oracle 甲骨文:如何;不变的;会话参数?,oracle,Oracle,我正在对进行不区分大小写的查询 alter session set NLS_COMP=LINGUISTIC; alter session set NLS_SORT=BINARY_CI; 是否有一种方法可以在更改会话状态之前轻松捕获会话状态,以便将会话恢复到其原始状态?您可以使用以下方法获取当前值: select * from nls_session_parameters; 在更改会话之前。要恢复它,只需使用保存的值 我不知道有任何语句将会话参数重置为默认值。您可以使用以下方法获得当前值:
alter session set NLS_COMP=LINGUISTIC;
alter session set NLS_SORT=BINARY_CI;
是否有一种方法可以在更改会话状态之前轻松捕获会话状态,以便将会话恢复到其原始状态?您可以使用以下方法获取当前值:
select *
from nls_session_parameters;
在更改会话之前。要恢复它,只需使用保存的值
我不知道有任何语句将会话参数重置为默认值。您可以使用以下方法获得当前值:
select *
from nls_session_parameters;
在更改会话之前。要恢复它,只需使用保存的值
我不知道有任何语句将会话参数重置为默认值。NLS参数通过一系列视图公开,从NLS开始。在你的情况下,你需要。实例和数据库有等价的视图
这比使用更简洁,尽管该视图确实允许我们判断paarmeter是否已从默认值更改。NLS参数通过一系列视图公开,从NLS开始。在你的情况下,你需要。实例和数据库有等价的视图
这比使用更简洁,尽管该视图允许我们判断paarmeter是否已从默认值更改。您可以通过以下方式获得给定会话参数的值:
SELECT value
FROM nls_session_parameters
WHERE parameter = 'NLS_SORT'; -- replace NLS_SORT with parameter of your choice
演示执行不区分大小写搜索的其他方法
UPPER()
/LOWER()
函数与您可以通过以下方式获取给定会话参数的值:
SELECT value
FROM nls_session_parameters
WHERE parameter = 'NLS_SORT'; -- replace NLS_SORT with parameter of your choice
演示执行不区分大小写搜索的其他方法
UPPER()
/LOWER()
函数与您最初可以看到参数值:
SQL> SHOW PARAMETER NLS_SORT;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_sort string BINARY
SQL> SHOW PARAMETER NLS_COMP;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_comp string BINARY
然后相应地设置会话参数:
SQL> alter session set nls_comp='LINGUISTIC';
Session altered
SQL> alter session set nls_sort='BINARY_CI';
Session altered
在PL/SQL中,可以执行以下操作来获取参数值并将其存储在会话变量中:
SQL> DECLARE
2 VAR_NLS_SORT VARCHAR2(10);
3 var_nls_comp VARCHAR2(10);
4 BEGIN
5 SELECT VALUE
6 INTO VAR_NLS_SORT
7 FROM NLS_SESSION_PARAMETERS
8 WHERE PARAMETER = 'NLS_SORT';
9 SELECT VALUE
10 INTO VAR_NLS_COMP
11 FROM NLS_SESSION_PARAMETERS
12 WHERE PARAMETER = 'NLS_COMP';
13 DBMS_OUTPUT.PUT_LINE('NLS_SORT = '||VAR_NLS_SORT);
14 DBMS_OUTPUT.PUT_LINE('NLS_COMP = '||VAR_NLS_COMP);
15 END;
16 /
NLS_SORT = BINARY
NLS_COMP = BINARY
PL/SQL procedure successfully completed.
有关更多信息,您可以查看您可以看到参数值最初:
SQL> SHOW PARAMETER NLS_SORT;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_sort string BINARY
SQL> SHOW PARAMETER NLS_COMP;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_comp string BINARY
然后相应地设置会话参数:
SQL> alter session set nls_comp='LINGUISTIC';
Session altered
SQL> alter session set nls_sort='BINARY_CI';
Session altered
在PL/SQL中,可以执行以下操作来获取参数值并将其存储在会话变量中:
SQL> DECLARE
2 VAR_NLS_SORT VARCHAR2(10);
3 var_nls_comp VARCHAR2(10);
4 BEGIN
5 SELECT VALUE
6 INTO VAR_NLS_SORT
7 FROM NLS_SESSION_PARAMETERS
8 WHERE PARAMETER = 'NLS_SORT';
9 SELECT VALUE
10 INTO VAR_NLS_COMP
11 FROM NLS_SESSION_PARAMETERS
12 WHERE PARAMETER = 'NLS_COMP';
13 DBMS_OUTPUT.PUT_LINE('NLS_SORT = '||VAR_NLS_SORT);
14 DBMS_OUTPUT.PUT_LINE('NLS_COMP = '||VAR_NLS_COMP);
15 END;
16 /
NLS_SORT = BINARY
NLS_COMP = BINARY
PL/SQL procedure successfully completed.
有关更多信息,您可以查看您是否尝试查询
v$parameter2
(请参阅)?您是否尝试查询v$parameter2
(请参阅)?据我所知,这是最好的方法。但似乎应该有更好的办法。例如,reset
语法对于session
来说是未记录的,但看起来确实有效。例如,alter session reset nls\u sort代码>将重置它。但它会将其重置为Oracle默认值,而不是以前的系统默认值。据我所知,这是最好的方法。但似乎应该有更好的办法。例如,reset
语法对于session
来说是未记录的,但看起来确实有效。例如,alter session reset nls\u sort代码>将重置它。但它会将其重置为Oracle默认值,而不是以前的系统默认值。