www.whkt.net > AuthiD CurrEnt usEr

AuthiD CurrEnt usEr

前者是模式拥有者,后者是当前用户.有些数据库可能当前用户无法访问,而且用那个权限会决定存储过程记在谁的名下

在布署一个历史数据迁移的job时,遇到job无法正常运行的问题.后来查了下原因权限的问题:create or replace procedure p_cb Authid Current_Useras begin execute immediate 'create table t1(id number)'; end;SQL> exec p_ctb;PL/SQL

调用的时候是用这个存储过程的owner吗,如果不是,在存储过程头部加上AUTHID CURRENT_USER .如果是动态sql,需要显示的授权grant select on xxx to xxx ;

目测是bdc_bh表里oid字段应该是数字类型,但是你插入的时候i上带引号,就变成了字符类型,i上的引号去掉试试或者右键点击你那个带红*的存储过程,进入编辑或者查看,看看下边报的什么错

你要访问其他用户的表或视图吧,需要把对象显式授权给执行存储过程的用户.原因是角色里带的权限不会在存储过程里生效.

本来存储过程不加Authid Current_User会提示权限不足,然后会出现序列删除成功,但是无法新建的奇怪现象.加了以后一切正常,但是放在job里面执行后,又出这个问题了,序列删了,但是没有新建.

应该这样吧: CREATE OR REPLACE FUNCTION GHL_TEST(P IN VARCHAR) RETURN VARCHAR2 IS V_USER VARCHAR2(50); BEGIN IF INSTR(P, '急') = 0 THEN V_USER := '1'; END IF; RETURN V_USER; END GHL_TEST;

1 查询时可以使用as为列名或者表达式指定伪名2 创建函数或存储过程时作为过程名(含参数)和变量分隔的关键词3 作为with语句的声明和sql语句的分隔符

在项目中,经常会遇到需要定时完成的任务,比如定时更新数据,定义统计数据生成报表等等,其实这些事情都可以使用oracle的job来完成.下面考试大就结合我们实验室项目实际,简单介绍一下在oracle数据库中通过job完成自动创建表的方法

1、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权:grant create sequence to 数据库用户; grant drop any sequence to 数据库用户;2、存储过程中创建序列和删除序列:创建序列:execute immediate

友情链接:rpct.net | tfsf.net | hbqpy.net | famurui.com | jinxiaoque.net | 网站地图

All rights reserved Powered by www.whkt.net

copyright ©right 2010-2021。
www.whkt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com