我想在SYS.ALL_ARGUMENTS上创建一个向后兼容的查询。在Oracle11g中,添加了有用的ALL_ARGUMENTS.DEFAULTED列。现在,如果我对Oracle 10g运行此查询:
SELECT defaulted FROM all_arguments
当然,我有个错误。
ORA-00904:"SYS"."ALL_ARGUMENTS"."DEFAULTED":无效标识符
我想做的是:
SELECT CASE WHEN column_exists("defaulted")
THEN d
问题条件
我有一个非常简单的Oracle (11g)存储过程,声明如下:
CREATE OR REPLACE PROCEDURE pr_myproc(L_CURSOR out SYS_REFCURSOR)
is
BEGIN
OPEN L_CURSOR FOR
SELECT * FROM MyTable;
END;
这将正确编译。光标包含col1、col2和col3。
在SSRS中,我有一个共享数据源,它将Oracle OLEDB提供程序用于Oracle 11g:
Provider=OraOLEDB.Oracle.1;Data Source=LIFEDEV
(
我在tabB DB中有两个模式,分别是A和B。模式A有一个表tabA,模式B有一个表oracle。
现在,在模式B中,这是可行的:
select * from A.tabA
但是,我在模式B中创建了一个具有过程FOO的包。该过程本质上做了相同的事情。
PROCEDURE FOO IS
BEGIN
INSERT INTO B.tabB (select * from A.tabA)
END FOO
这不能编译并得到ORA-01031 Insufficient privileges error。我必须转到模式A并显式地向模式B授予SELECT特权,才能使过程成功编译。
现在A.tabA不是唯一的表
我目前正在Ubuntu10.10上安装Oracle 11g
它被要求在安装时以"root“的形式执行一些脚本。
我在做:
oracle@sergio:/u01/app/oraInventory$ sudo sh orainstRoot.sh
并得到:
[sudo] password for oracle:
oracle is not in the sudoers file. This incident will be reported.
如果我以“根”权限登录到oracle用户下,我如何实际运行这些脚本?
谢谢你的帮助。
我正在使用Oracle 获取有关我们数据库中的包的一些元数据。
以下是我的一个问题:
select AP.PROCEDURE_NAME
from ALL_PROCEDURES ap
where ap.object_name = :object_name
and ap.owner=:owner
and ap.procedure_name is not NULL
and ap.procedure_name like :procedure_name
我还想知道给定对象是函数、过程还是类型。我似乎找不到直接从表中提取数据的方法。
请注意:,我不想从all_sources解析它。
与Oracle一样,SQL Server也支持存储过程中的参数默认值。Oracle语法:
CREATE OR REPLACE PROCEDURE p_default (
p_in_number IN number := 0,
p_out_number OUT number,
p_in_varchar IN varchar2 := '0',
p_out_varchar OUT varchar2,
p_in_date IN date := date '1981-07-10',
p_out_date OU
这是我的代码:
SET DEFINE OFF;
CREATE OR REPLACE AND COMPILE NOFORCE JAVA SOURCE NAMED "SCHEMA"."DigestUtils" AS
/* imports here... */
public class DigestUtils {
private static final char[] hexCode = "0123456789ABCDEF".toCharArray();
private static final int DEFAULT_BUFFE
我是Oracle数据库的新手。我看到,如果我以sys用户身份连接,我可以
select * from dba_users;
但是,一旦我完成了conn nonsys@dbid,我就不能再这样做了;我会得到一个错误消息:
ORA-00942: table or view does not exist
select * from sys.dba_users;也不起作用。
您能解释一下为什么会这样吗?在以非系统用户身份连接后,我如何进行select * from dba_users;?
另外,disconnect会让我完全断开连接;在sqlplus中,是否可以只“退出”当前用户并返回到sys?如果可
我想列出在给定模式中使用重载的所有存储过程。所有的过程都在包中。我可以使用下面的SQL几乎到达那里(任何proc_count >1的东西)。
select
object_name, procedure_name, count(procedure_name) as proc_count
from
all_procedures
where
owner = 'SCHEMA_NAME'
group by
object_name, procedure_name
order by proc_count desc