我正在使用SQL Developer为一些软件包假脱机,但我无法确定服务器假脱机的位置.Oracle安装在AIX上,但我不知道它用于连接操作系统的用户.
基本上,当我跑:
spool test.lst
select 1 from dual;
spool off
Run Code Online (Sandbox Code Playgroud)
我在控制台收到确认消息
1
----------------------
1
Run Code Online (Sandbox Code Playgroud)
每当我尝试提供路径时,我都会收到错误,可能是因为用户权限:
spool /tmp/test.lst
select 1 from dual;
spool off
Cannot create SPOOL file /tmp/test.lst
1
----------------------
1
Run Code Online (Sandbox Code Playgroud)
所以我的问题是test.lst在哪里?
这个场景就像这样......
我有一个命名空间XXX,我创建了一些表和一些存储过程...
他们有一个名称空间YYY,他们创建了一些表...
他们XXX授予了对表的访问权限,所以当我使用XXX连接与SQL Developer 相连时,我可以这样做:
SELECT * FROM YYY.TableA
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试从存储过程(简单存储过程或包)内部运行相同的语句,则存储过程不会编译.它发生在很多sp上.还有其他许可我要问??? 我正在运行这样的sp:
CREATE OR REPLACE PROCEDURE PRC_SOMESP(
) AS BEGIN
END PRC_SOMESP;
Run Code Online (Sandbox Code Playgroud)
不访问YYY表的过程编译得很好.
提前致谢.
在Justin Cave响应之后,我正在尝试将"AUTHID CURRENT_USER"句子添加到sp中,但得到相同的"表或视图不存在"结果:
CREATE OR REPLACE PROCEDURE PRC_PROC1( PARAMETERS... )
AUTHID CURRENT_USER
AS
MYVAR NUMBER;
BEGIN
STATEMENTS...
END PRC_PROC1;
CREATE OR REPLACE PACKAGE PKG_PROC2
AUTHID CURRENT_USER
AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE PRC_PROC2( PARAMETERS... )
END PKG_PROC2
Run Code Online (Sandbox Code Playgroud)
我应该检查一下吗???
我有一个包含以下字段的表:
报告(表名)Rep_Date(日期)Rep_Time(日期)
Rep_Time字段具有类似'01/01/1753 07:30:00'的值,即时间部分是相关的.我写了以下查询:
select Reports.pid, MaxDate from Reports
INNER JOIN (
select pid, max(TO_DATE(TO_CHAR(REP_DATE, 'DD/MM/YYYY')
|| TO_CHAR(REP_TIME, 'HH24:MI:SS'), 'DD/MM/YYYY HH24:MI:SS')) As MaxDate
from reports
group by pid
) ReportMaxDate
on Reports.PID = ReportMaxDate.PID
AND To_Date(To_Char(MaxDate, 'DD/MM/YYYY')) = REP_DATE
WHERE REPORTS.PID=61
Run Code Online (Sandbox Code Playgroud)
查询的派生表部分运行,但是当我运行整个查询时,我收到一个错误:"不是有效的月份".为什么是这样?
为了帮助调试这个; 如果我运行以下查询:
select rep_date, rep_time from reports where pid=61 and rownum=1
Run Code Online (Sandbox Code Playgroud)
我明白了:
Rep_Date = 01/04/2009
Rep_Time = 01/01/1753 13:00:00
Run Code Online (Sandbox Code Playgroud)
更新15:58我现在能够执行以下查询:
select Reports.pid, MaxDate from Reports
INNER JOIN (
select pid, max(TO_DATE(TO_CHAR(REP_DATE, 'DD/MM/YYYY')
|| TO_CHAR(REP_TIME, 'HH24:MI:SS'), 'DD/MM/YYYY HH24:MI:SS')) As …Run Code Online (Sandbox Code Playgroud) 我知道数据库引擎本身(经常)在另一台机器上并且SQL*Plus没有直接读取这些环境变量的方法,但是我处于一个棘手的情况,我只需要来自机器的环境变量客户端本身正在运行.
有没有办法在一个将在SQL*Plus中运行的单个脚本中将这些值欺骗到SQL*Plus客户端?该脚本由一个开始/结束PL/SQL块组成,但是如果我需要使用set/define/variable排序的SQL*Plus指令,这也不应该是一个问题.
我不能做的是改变SQL*Plus可执行文件本身的启动方式(我没有权限将值作为参数传递).
有没有办法实现这个目标?
注意:dbms_system.get_env()似乎从服务器本身检索环境变量,这是我不想要的.
我正在编写一个查询,它在 select 语句中嵌套了查询,如下所示。
Select t1.R1,
(
select * from
(
select t2.R2
from table2 t2
where t2.Condition_1=t1.C1
order by t2.Condition_2 desc
)
where rownum=1
),
t1.R3
from table1 t1
Run Code Online (Sandbox Code Playgroud)
我正在尝试将主查询对象传递到 select 语句中的子查询内的子查询中。
当我执行这个时,我在t1.C1.
我可以将主表的对象传递table1给第一个子查询,但是如何将列传递给table1子查询中的子查询?
在这种情况下,有人可以帮助我吗?
我正在使用 LinkedHashMap 并且环境是多线程的,因此该结构需要是线程安全的。在特定事件期间,我需要读取整个地图推送到数据库并清除所有内容。
大多数时候只有写入发生在这张地图上。该地图的条目限制为 50 个。
我正在使用 Oracle MAF,但它没有可用的 Collections.syncronizedMap。那么,我需要在同步块中放入哪些内容,以确保写入和读取不会出现并发修改异常等
几个要求:
我的域名服务器名称'HBHAWANI'(版本Oracle 8i)上有一个名为'HBHAWANI'的数据库.每当我尝试在这里创建dblink时它会给出错误:
Link : "DBLINK_DOMAINSERVERTOUPASS_PP"
Error : ORA-02085: database link DBLINK_DOMAINSERVERTOUPASS_PP connects to ORACLE
Run Code Online (Sandbox Code Playgroud)
DBLink的脚本是:
CREATE PUBLIC DATABASE LINK DBLINK_DOMAINSERVERTOUPASS_PP
CONNECT TO UPASS.HBHAWANI
IDENTIFIED BY <PWD>
USING 'UPASS.HBHAWANI';
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多,但发生了相同的错误.请提供相关建议.
如果我创建一个程序:
CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS IS
BEGIN
SYS.DBMS_STATS.GATHER_TABLE_STATS( 'SchName', 'TableName', CASCADE => TRUE);
END;
Run Code Online (Sandbox Code Playgroud)
并执行它;
EXEC SchameB.PRC_GATHER_STATS;
Run Code Online (Sandbox Code Playgroud)
这给了我错误ORA-20000: Unable to analyze TABLE "SchameA"."TableName", insufficient privileges or does not exist.但这有效:
EXEC SYS.DBMS_STATS.GATHER_TABLE_STATS( 'SchameA', 'TableName', CASCADE => TRUE);
Run Code Online (Sandbox Code Playgroud)
谁的用户EXECS中的程序和表在不同的模式.
为什么我在通过程序执行此操作时出错?
我在Linux机器上安装了Oracle Database 11gR2以及Oracle Grid Infrastructure,然后创建了orcl数据库.
我一直能够使用SQL*Plus或OEM连接到我的数据库.但是最近,我在输入命令时遇到了一个问题lsnrctl status,所以我无法连接到数据库.
我的listener.ora档案:
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
Run Code Online (Sandbox Code Playgroud)
我的tnsnames.ora文件:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
(CONNECT_DATA …Run Code Online (Sandbox Code Playgroud) 我不知道我不小心点击了什么热键,但这个«¶看起来的标志出现在每行代码上,并且代码中有灰色点而不是空格.

我该如何摆脱这些角色?
oracle ×8
oracle11g ×2
concurrency ×1
dblink ×1
java ×1
oracle-maf ×1
oracle10g ×1
sql ×1
sqlplus ×1