标签: oracle10g

Oracle数据库10g VIEW性能

我在我的一个Oracle数据库中有一个视图,执行时间太长.当语句运行时,它似乎没有停止.

无论如何,我们可以验证此视图的性能或我们如何检查语句会话是否"挂起"?

谢谢,N2EE

UPDATE

我意识到问题在于视图中的底层查询.感谢Edwin的autotrace修复程序.

sql oracle plsql views oracle10g

0
推荐指数
1
解决办法
6534
查看次数

你能帮我在Oracle编写一个程序来将数据从表中假脱机到CSV文件吗?

我正在编写一个过程来创建一个包含Oracle表中数据的CSV文件.我用过,"spool filename;"但错误即将来临.我可以spool在PL/SQL中使用吗?

oracle plsql oracle10g

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

Oracle:选择表的日期字段的小时和分钟值设置为特定值的所有记录

我在Oracle数据库中有一个包含日期字段EXPIRYDATE的表.我需要从表格中选择所有记录,其中日期字段的小时和分钟部分设置为0(即午夜).我怎样才能做到这一点?

我尝试使用提取功能(http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions050.htm),但显然它只接受YEAR,MONTH或DAY作为日期字段的参数.

database select datetime oracle10g

0
推荐指数
1
解决办法
231
查看次数

SQL orcl10g触发器插入(birthDate after birthDate)

触发器需要在输入生日之前停止死亡日期.

CREATE TRIGGER Check_deathDate
BEFORE INSERT Or UPDATE of deathDate on Actor
FOR EACH ROW
DECLARE
deathDate           DATE;
birthDate           DATE;
deathDate_Error     EXCEPTION;
IF (deathDate < birthDate) THEN
RAISE deathDate_Error;
END IF;
EXCEPTION 
WHEN deathDate_Error THEN
Raise_application_error( 'deathDate' || 'should be before' || 'birthDate');
END;);
Run Code Online (Sandbox Code Playgroud)

给出错误......

*第3行的错误:ORA-04079:触发器规范无效

...我怎么能指定IF?

sql oracle triggers oracle10g

0
推荐指数
1
解决办法
149
查看次数

Oracle SQL通过游标使用和单次提交有效地插入大型数据集

以下SQL生成具有相同模式的两个表之间的所有匹配记录,然后继续迭代存储此结果集的游标.我在这个函数的末尾用行提交逐行插入.我的问题是如何从这种类型的查询中获得最大的性能?代码如下:

BEGIN  
DECLARE    
   CURSOR foo IS  
        SELECT * FROM tableOne to  
        WHERE EXISTS (SELECT * FROM tableTwo tt  
                       WHERE TO.FOO = TT.FOO  
                       AND TO.BAR = TT.BAR);  --THIS TAKES 5 MINUTES (66 MILLION ROWS)
     BEGIN  
           FOR nextFoo IN foo  
     LOOP  
            INSERT INTO tracker t  
               (id,foo,bar,baz)  
            VALUES(trackerSequence.nextval, nextFoo.foo,nextFoo.bar,nextFoo.baz);  
     END LOOP;   
     COMMIT;  
     END;  
END;
Run Code Online (Sandbox Code Playgroud)

此查询可能需要一个多小时,我正在尝试减少与之相关的时间成本.我将处理一般的1.4亿条记录,所以我希望这个过程花费的时间加倍.所有列都已编制索引.

版本信息:

10克10.2

sql database oracle performance oracle10g

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

Oracle Forms 10g - 为什么我必须单击"保存"以便我的插入查询将保存到数据库

为什么我必须单击formservlet上左上角的保存按钮,以便我的插入查询将保存到数据库?对不起伙计们,非常新手在这里谢谢

在此输入图像描述 这是我的pl sql代码添加按钮触发器:

begin
insert into tb_distributor
      (distributor_id, distributor_name, distributor_type, distributor_desc)     
 values
      (distributor_id.nextval,:DISTRIBUTOR_NAME, :DISTRIBUTOR_TYPE, :DISTRIBUTOR_DESC);
commit;

end;
Run Code Online (Sandbox Code Playgroud)

oracleforms oracle10g

0
推荐指数
1
解决办法
2783
查看次数

普通表中oracle临时表的好处

我开始在oracle创建临时表.但无法理解这一点的最佳用途.有人可以帮助我了解什么是功能和在Oracle中使用临时表的好处(create temporary table temp_table)超过普通表(create table temp_table) )

oracle oracle10g oracle11g

0
推荐指数
1
解决办法
7823
查看次数

NOT EQUAL operator != not working as expected in Oracle

I have made a new column in my database table:

alter table TABLE add (COLUMN NUMBER(1));
Run Code Online (Sandbox Code Playgroud)

Now I want to select all records where the value of column is not zero, either it’s some other number of empty (null)

SELECT * FROM TABLE WHERE COLUMN != 0;
Run Code Online (Sandbox Code Playgroud)

And by default all columns have empty/null value as this column is recently added so it should return all records but doesn’t return any.

But if a change the value for this column …

sql oracle oracle10g

0
推荐指数
1
解决办法
5869
查看次数

为什么缺少时间?

我有下面的代码

declare
  v_rst varchar2(200);

  cursor c_cur is
    select sysdate from dual;
begin

  open c_cur;
  fetch c_cur
    into v_rst;
  close c_cur;

  dbms_output.put_line(v_rst);

end;
Run Code Online (Sandbox Code Playgroud)

它的输出结果是"23-DEC-14"

当我在查询下面运行时,结果是"12/23/2014 11:21:06 AM"

select sysdate from dual;
Run Code Online (Sandbox Code Playgroud)

当我运行第一个代码时,我不知道为什么TIME部分消失了.

任何人都可以解释会非常感激.

sql oracle plsql oracle10g oracle11g

0
推荐指数
1
解决办法
73
查看次数

Oracle查询使用like子句与当前星期几的记录

我在记录栏中有一个天数列表.我想查询该列以查看它是否包含使用LIKE关键字的当前星期几.该记录包含例如:

INTV
-----------------------
monday,tuesday,wednesday
Run Code Online (Sandbox Code Playgroud)

我想看看当天是否在INTV.因此,如果今天是星期一,我希望上面的行返回.

如果我硬编码一周中的某一天,它就可以了.例如,... WHERE intv LIKE '%monday%'.但是,当我尝试通过使用SYSDATE和使用to_char(sysdate, 'day') 它来抓住当天添加当天不起作用.

这是我到目前为止没有运气的尝试:

SELECT * FROM mytable where intv like '%' || to_char(sysdate, 'day') || '%';

SELECT * FROM mytable where intv like to_char(sysdate, 'day');

SELECT * FROM mytable where intv like to_char(sysdate, '%day%');
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle10g oracle11g

0
推荐指数
1
解决办法
55
查看次数