1 问题场景:

在Oracle11g向DM8迁移的过程中,包在编译时报错函数[USERENV]无法解析。

2 原因分析:

达梦和Oracle的USERENV函数存在规则不同

3影响范围 :

编译失败"cMachine := USERENV('TERMINAL');"

4 具体分析:

4.1  Oracle中USERENV函数的具体含义用法及参数

USERENV返回当前会话的信息。此信息对于编写特定于应用程序的审计跟踪表或确定会话当前使用的特定于语言的字符非常有用。不能在CHECK约束条件下使用USERENV。参数参数的取值如下表所示。

所有对USERENV的调用都返回VARCHAR2数据,除了使用SESSIONID、SID和ENTRYID参数的调用,它们返回NUMBER。

Parameter

Return Value

CLIENT_INFO

CLIENT_INFO返回最多64字节的用户会话信息,这些信息可以由使用DBMS_APPLICATION_INFO包的应用程序存储。

ENTRYID

当前审计条目号。审计entryid序列在细粒度审计记录和常规审计记录之间共享。不能在分布式SQL语句中使用此属性。

ISDBA

如果用户通过操作系统或密码文件被认证为具有DBA权限,ISDBA返回'TRUE'。

LANG

LANG返回语言名称的ISO缩写,比现有的' language '参数更短。

LANGUAGE

LANGUAGE以这种形式返回当前会话使用的语言和区域,以及数据库字符集:language_territory.characterset

SESSIONID

SESSIONID返回审计会话标识符。不能在分布式SQL语句中指定此参数。

SID

SID返回会话ID。

TERMINAL

TERMINAL返回当前会话的终端的操作系统标识符。在分布式SQL语句中,此参数返回本地会话的标识符。
在分布式环境中,仅远程SELECT语句支持该参数,远程INSERT、UPDATE、DELETE操作不支持该参数。

4.1.2  USERENV函数在Oracle中有以下两种用法:

1

SELECT USERENV('LANGUAGE') "Language" FROM DUAL;

Language

-----------------------------------

AMERICAN_AMERICA.WE8ISO8859P1

2

CONNECT OE

Enter password: password

SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER')  FROM DUAL;

SYS_CONTEXT ('USERENV', 'SESSION_USER')

---------------------------------------

OE

4.2  DM中USERENV函数的具体含义用法及参数

4.2.1 USERENV 为系统默认的上下文名字空间,保存了用户的上下文信息

属性

说明

CURRENT_SCHEMA

返回当前模式名

CURRENT_SCHEMAID

返回当前模式ID

CURRENT_USER

返回当前的用户名

CURRENT_USERID

返回当前的用户ID

DB_NAME

返回数据名

HOST

返回客户端的主库名

INSTANCE_NAME

返回实例名

IP_ADDRESS

返回客户端的IP地址

ISDBA

如果当前会话用户拥有DBA权限,则返回TRUE,否则返回FALSE

LANG

语言包简写,中文返回―CN‖,英文返回―EN‖

LANGUAGE

语言包,返回库的编码方式

NETWORK_PROTOCOL

通信协议

SERVER_HOST

实例运行的主机名

SESSION_USER

会话的用户名

SESSION_USERID

会话的用户ID

SID

当前会话的ID

4.2.2 USERENV函数在DM中只有以下一种用法:

SELECT LOCATION INTO V_LOCATION FROM MYKGIS.EMPLOYEE WHERE LASTNAME = SYS_CONTEXT('USERENV','SESSION_USER');

5 最终修改方案:

cMachine := USERENV('TERMINAL');

改为:

cMachine := SYS_CONTEXT('USERENV','TERMINAL');"

编译成功。

达梦技术社区:https://eco.dameng.com

迁移过程中出现报错:无法解析的成员访问表达式[USERENV]相关推荐

  1. dm数据库无法用序列自动生成主键,无法解析的成员访问表达式【SEQ_STU_CON_NEXTVAL】

    报错信息: 无法解析的成员访问表达式[SEQ_STU_CON_NEXTVAL] select SEQ_STU_CON_NEXTVAL 这种错的解决方案,在dm数据库中创建一个序列叫SEQ_STU_CO ...

  2. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法

    python3学习<机器学习实战>书中的报错及解决办法(更新中) <机器学习实战>是一本很不错的书,其采用的是py2的语法格式,在用最新的python3.6编写代码的过程中,书 ...

  3. win7系统无法解析服务器的dns地址,Win7网页报错“无法解析服务器的DNS地址”怎么办...

    有些用户在使用Win7系统时,打开网页提示错误:"无法解析服务器的DNS地址",导致网页无法打开.针对这种情况,下面学习啦小编就为大家介绍一下Win7系统网页报错"无法解 ...

  4. win7系统无法解析服务器的dns地址,怎么办Win7系统网页报错“无法解析服务器的DNS地址”...

    最近一些重装系统的用户在运用Win7系统时,翻开网页提示错误:"无法解析效劳器的DNS地址",招致网页无法翻开.遇到这种状况应该怎样办呢?下面小编教大家Win7系统网页报错&quo ...

  5. python2中的unicode_python2中的unicode()函数在python3中会报错:

    python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is not defined There is no such name in P ...

  6. IDEA快捷键及xml文件中网址报错

    Alt+Shift+Tab 切换窗口(从后往前) div+Tab             补全为         <div></div> #box+Tab           ...

  7. 在 vCenter Server 中出现报错:虚拟机无法进入受 vSphere HA 保护的状态 (2020082)

    在 vCenter Server 中出现报错:虚拟机无法进入受 vSphere HA 保护的状态 (2020082) https://kb.vmware.com/s/article/2020082?l ...

  8. Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法

    Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法 参考文章: (1)Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决 ...

  9. SpringBoot中@Email报错解决

    SpringBoot中@Email报错解决 JSR303校验相关 现象:在springboot中使用@Email注解进行数据校验时,报没有该注解的错误. 解决方法: 在pom.xml中加该配置 < ...

最新文章

  1. jupyter的下载安装
  2. 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java
  3. Java开发面试问题,Jsoup解析html
  4. 成功解决在excel表格中仅在某列内插入一个空白单元格,使其下部的数据整体下移一格
  5. python 语言教程(2)基础语法之标识符
  6. python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...
  7. Python 计算机视觉(三)—— 数字图像处理基本操作
  8. 启明云端分享|AIOT+智慧屏解决方案,用色彩渲染智慧生活
  9. 有不同列数的两个表的UNION
  10. docker php示例,Docker PHP 例子
  11. Tempter of the Bone
  12. 又是一年末来临,年终奖金的算法
  13. 【经验分享】linux交叉编译 - openssl动态库
  14. 关于排版与交互的问题
  15. centos6.5 安装python3.5
  16. mysql中连接和断开数据库_robot framework——连接和断开mysql数据库
  17. matlab 复数求模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
  18. 如何在Mac上高质量的进行PDF OCR转换
  19. java字节码查看器_jclasslib 64位
  20. 机器学习原理与实战 | SVM(支持向量机)实践

热门文章

  1. IDEA编译报错:java: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出
  2. 发明界泥石流!河南一小伙发明陪酒机器人,全程高能结局笑疯
  3. 综合实践计算机的入门知识教学设计,3-6年级综合实践活动3.我是电脑小画家_教案、教学设计_市级优课(0001)【信息技术】.doc...
  4. 平生事,此时凝睇,谁会凭栏意!(4)
  5. 超宽屏幕比例_选择合适的21:9超宽带鱼屏屏幕(普通屏幕也可)
  6. MNIST数据集手写数字识别
  7. 怎么恢复苹果内置的计算机,苹果自带软件删了怎么恢复原状
  8. 新建git分支(歪门邪道)
  9. 批量监测手机微博更新内容
  10. 掌控堆栈确保系统稳定 IAR技术手册翻译