加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 在措施包/存储进程中变动会话NLS_LENGTH_SEMANTICS =

发布时间:2021-01-26 05:02:56 所属栏目:站长百科 来源:网络整理
导读:我们的应用措施合用于oracle 10g数据库,我们打算此刻将其迁徙到exadata. 为此,我们必需遵循exadata接管的一些合规性. 个中之一是在界说的开头将语句添加到每个现有的包/进程/函数中 alter session set NLS_LENGTH_SEMANTICS='CHAR' 我只是想搜查,也许会改变

我们的应用措施合用于oracle 10g数据库,我们打算此刻将其迁徙到exadata.
为此,我们必需遵循exadata接管的一些合规性.
个中之一是在界说的开头将语句添加到每个现有的包/进程/函数中

alter session set NLS_LENGTH_SEMANTICS='CHAR'

我只是想搜查,也许会改变会话来改变这个会话变量影响代码成果吗?
将此语句添加到全部工具时,我们必需记着哪些事项?

任何线索都将受到高度赞赏

办理要领

修订:

我正在修改我的谜底,由于来自另一位受人尊敬的Oracle员工专家(Sergiusz Wolicki)的提议,以及文档在此参数长举办了修订以告诫不要将其配置为CHAR作为初始化参数,以及告诫如故存在的究竟有12.1

http://docs.oracle.com/database/121/NLSPG/ch3globenv.htm#NLSPG234

Caution: Oracle strongly recommends that you do NOT set the
NLS_LENGTH_SEMANTICS parameter to CHAR in the instance or server
parameter file. This may cause many existing installation scripts to
unexpectedly create columns with character length semantics,resulting
in run-time errors,including buffer overflows.

告诫:
假如在没有显式语义的环境下编写DDL剧本,那么配置参数不会影响它,可是,它显然不是在Oracle产物剧本中全面安详更新的对象.

行使编写精采的代码,它必定不会影响“代码成果”,它只是一个简朴影响新字段宽度的配置.这里的要害好像是你可以担保这是何等惬意.

可是,假如甲骨文告诫它,他们就有这方面的履历和证据.不知道长度语义的遗留应用措施或器材也许会受到影响.

因为向后兼容性,Oracle缺省传统上是BYTE,可是对付没有遗留内容的新数据库,没有变动它的风险,而且它不会影响内部数据字典,由于它们被锁定到BYTE语义而不管数据库是什么配置为NLS_LENGTH_SEMANTICS.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读