小编Ale*_*ole的帖子

Oracle假脱机位置

我正在使用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在哪里?

oracle oracle-sqldeveloper

9
推荐指数
1
解决办法
4万
查看次数

从存储过程内部oracle"表或视图不存在"

这个场景就像这样......

我有一个命名空间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)

我应该检查一下吗???

oracle stored-procedures

8
推荐指数
2
解决办法
3万
查看次数

甲骨文:不是有效月份

我有一个包含以下字段的表:

报告(表名)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 oracle

8
推荐指数
1
解决办法
11万
查看次数

SQL*Plus可以从机器上读取环境变量吗?

我知道数据库引擎本身(经常)在另一台机器上并且SQL*Plus没有直接读取这些环境变量的方法,但是我处于一个棘手的情况,我只需要来自机器的环境变量客户端本身正在运行.

有没有办法在一个将在SQL*Plus中运行的单个脚本中将这些值欺骗到SQL*Plus客户端?该脚本由一个开始/结束PL/SQL块组成,但是如果我需要使用set/define/variable排序的SQL*Plus指令,这也不应该是一个问题.

我不能做的是改变SQL*Plus可执行文件本身的启动方式(我没有权限将值作为参数传递).

有没有办法实现这个目标?

注意:dbms_system.get_env()似乎从服务器本身检索环境变量,这是我不想要的.

oracle sqlplus environment-variables

8
推荐指数
1
解决办法
9271
查看次数

如何将主查询列传递给嵌套子查询?

我正在编写一个查询,它在 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子查询中的子查询?

在这种情况下,有人可以帮助我吗?

oracle oracle10g oracle11g

7
推荐指数
1
解决办法
2万
查看次数

没有 Collections.synchronized 的线程安全 LinkedHashMap

我正在使用 LinkedHashMap 并且环境是多线程的,因此该结构需要是线程安全的。在特定事件期间,我需要读取整个地图推送到数据库并清除所有内容。

大多数时候只有写入发生在这张地图上。该地图的条目限制为 50 个。

我正在使用 Oracle MAF,但它没有可用的 Collections.syncronizedMap。那么,我需要在同步块中放入哪些内容,以确保写入和读取不会出现并发修改异常等

几个要求:

  1. 我需要将其表现得像一个循环队列,因此重写 LinkedHashMap 的 removeEldestEntry 方法。
  2. 我需要保留订单

java concurrency multithreading data-structures oracle-maf

7
推荐指数
1
解决办法
2万
查看次数

ORA-02085:数据库链接DBLINK_NAME连接到ORACLE

我的域名服务器名称'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)

我已经尝试了很多,但发生了相同的错误.请提供相关建议.

oracle dblink

6
推荐指数
1
解决办法
5万
查看次数

exec从程序中收集表统计信息

如果我创建一个程序:

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中的程序和表在不同的模式.

为什么我在通过程序执行此操作时出错?

oracle

6
推荐指数
1
解决办法
4万
查看次数

监听器不支持任何服务

我在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 oracle11g

6
推荐指数
1
解决办法
9万
查看次数

每行工作表上的不需要的标志

我不知道我不小心点击了什么热键,但这个«¶看起来的标志出现在每行代码上,并且代码中有灰色点而不是空格.

单击此处查看快照

我该如何摆脱这些角色?

oracle-sqldeveloper

6
推荐指数
1
解决办法
2120
查看次数