另,在问题前一定要先搜索一下,查看一下各分版的faq及精华区,看是否有同类的问题。

解决方案 »

  1.   

    以前整过一次,就是很少有人看
    支持一下
    job:
    DBMS_JOB.SUBMIT(:jobno,//job号
                    'your_procedure;',//要执行的过程
                    trunc(sysdate)+1/24,//下次执行时间
                    'trunc(sysdate)+1/24+1'//每次间隔时间
                   );
    删除job:dbms_job.remove(jobno);
    修改要执行的操作:job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);
    例子:
    VARIABLE jobno number;
    begin
          DBMS_JOB.SUBMIT(:jobno, 
                  'Procdemo;', 
                   SYSDATE, 'SYSDATE + 1/720');
             commit;
    end;
    /
    临时表:
    CREATE GLOBAL TEMPORARY TABLE TABLENAME (
       COL1  VARCHAR2(10),
       COL2  NUMBER
    ) ON COMMIT PRESERVE(DELETE) ROWS ;
    这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据
    在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束
    copy的使用方式:
    copy from username/password@dbname
    to username1/pw1@dbname1
    append(create/insert/replace) tablename(col1,col2...)
    using select....from ...;
    append:添加到表上,如果tablename表不存在,则建立此表
    create:如果tablename表存在,则出错
    insert:添加到表中,如果tablename表不存在,则出错
    replace:替换表中数据,如果tablename表不存在,则建立此表.
      

  2.   


    ==================================    创建表空间    -------------------    本地管理表空间create tablespace lg  datafile 'c:\lg.dbf' size 100m  -- 数据文件用实列的名字好认
         blocksize 2048 
         autoextend on next 1280K maxsize unlimited 
         online permanent
            extent management local autoallocate;  
                //oracle 会为一开始分配一64k的范围,随着增长分配看对象的当前尺寸和增长模式
                           使用 64K 1m 8m 64m 来设计尺寸
                // 有 local 就不指定  NEXT, PCTINCREASE, MINEXTENTS, MAXEXTENTS, and 
                   DEFAULT STORAGE are not valid for extents that are managed locally
            extent management local uniform size 50m; 
                //所有范围必须是具有相同的容量,上列是50m        segment space management  auto  (9i)<<Oracle9i Database Administrator's Guide 11>>
                dba 不用管理 freelist ,freelist group , pctused 设置 设置了将被忽略
        
    dba_tablespaces 的ALLOCATION_TYPE 为 system 或 uniform
    不更新数据字典 并且不生成回滚活动-------------------    OMF 表空间
        
    create tablespace lg  // 也可指定 datafile
            blocksize 8k 
            extent management local uniform size 128K
            segment space management auto;-------------------    字典管理表空间
                 
    create tablespace lg datafile'c:\lg.dbf' size 100m extent management dictionary
          autoextend on 
          next 20m maxsize unlimited  ---指定数据文件的扩展大小
          minimum extent 1m       //为表空间指定最小范围
          default storage( initial 1m next    1m minextents  1 maxextents  unlimited pctincrease 0);dba_tablespaces 的ALLOCATION_TYPE 为 user
    信息记录在 sys.uet$每个区间一个记录 和 sys.fet$为每个自由区间保留一个数据行
      

  3.   

    看表是否为空的最快的方法  from asktom
    use the CBO and        select /*+ FIRST_ROWS */ primary_key from table where rownum = 1;> create table emp as select * from scott.emp;> alter table emp add constraint emp_pk primary key(empno);> analyze table emp compute statistics;> select /*+ FIRST_ROWS */ empno from emp where rownum = 1;
      

  4.   

    Itpub提供的不错的的文档链接:
      http://www.itpub.net/showthread.php?s=&threadid=105392
      

  5.   

    扩展 表空间~
    如下是在 图形方式(DBA Studio) 的作法:
    进入 之后~
     数据库名 -> 存储 -> 空间 -> 你的用户名-> 数据文件(选中之后)
     在右边有: "一般信息" 和 "存储" 两个可选页面~
     单击 "存储" 进入页面~
          选定 "数据文件已满后自动扩展(AUTOEXTEND)
                然后,自己看着办吧. ^&^ (有手动和自动,任君选择...)或者用 命令方式(SQL 语句) 的作法:
     ALTER DATABASE DATAFILE '数据文件(路径+名称)' AUTOEXTEND ON
    -------------------------------------------------------------------
    改计算机名的话,监听器就无法工作,数据库当然也打不开. :(不用急,就两三步可以搞定. :)
    在 Oracle 里修改相关的文件,把名字改回来就可以了~解决方法:
        1. 修改监听器的文件.
           ...Oracle目录 \Ora81\network\admin\listener.ora
           把里头的 Host = ... 改你现在的计算机名就可以啦~
        2. 修改服务名文件.
           ...Oracle目录\Ora81\network\admin\tnsnames.ora
           同样方法,把对应的 Host = ... 修改.
        3. 重启机子就可以啦~ 另: 如果在配置 本地服务名 的时候,在 主机名 里输入IP地址的话,就没有这种情况.
        但 IP 地址改变的话,还是要重配置.
      

  6.   

    Csdn中的Oracle的网友专栏:我的:
      http://www.csdn.net/develop/author/netauthor/hrb_qiuyb/Fenng(冯大辉)的:
      http://www.csdn.net/develop/author/netauthor/Fenng/ccbzzp的:
      http://www.csdn.net/develop/author/netauthor/CCBZZP/black_snail的:
      http://www.csdn.net/develop/author/netauthor/black_snail/
      

  7.   

    呵呵,好文章,我刚刚接触oracle,今天楼上各位给了我很多帮助!
      

  8.   

    SqlPlus 简单的使用技巧篇. (Windows OS)1. 打开 Sql* Plus自动登录数据库.
         由大家每打开的 Sql Plus 的时候,都要输入 用户名/密码@ 服务名.
         可以一打开程序,就自动连进去你设置好的连接.     方法: 在 Sql Plus 的快捷式 的 "属性" -> "目标"
    D:\Oracle\Ora81\BIN\SQLPLUSW.EXE system/manager@ORADB
         加上 用户名/密码@服务名 之后,就可以自动登录了.2. 用批处理文件方式运行脚本.
         调用 sqlplus 程序就可以啦.     方法:
    先 编辑脚本文件. (C:\Test.sql)
    conn system/manager
    --创建新的用户:如user1/pass1,赋予connect,resource权限。
    grant connect,resource to user1 identified by pass1;
    create table test(a number,b char(19));
    insert into test values(1,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
    insert into test values(2,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
    insert into test values(3,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
    commit;
    然后 建立 bat 文件(批处理文件):
    用 文本编辑 录入一句: sqlplus system/manager@服务名 @C:\test.sql"
    保存为 *.bat 文件.就可以运行脚本了.3. 用 Windows 的 Command 模式 比 用 Oracle 提供的 Sqlplus 工具好用.
       只要在 Command 模式下输入( C:\Sqlplus ) 就可以啦~ 输入的语句一样能用.   优点: 1. 在 Command 模式的话,光标可以向后退.
             2. 按 左键 拖拉,可以自由对文本进行选择;
                单击 选定的文字,就表示复制(比 Ctrl + C 方便吧)
       ( "属性" -> "选项" -> "快速编辑模式")
    ------------------------------------------------------------------------------
      

  9.   

    关于 Oracle中大对象处理的一些方法和实例
    http://expert.csdn.net/Expert/topic/2435/2435782.xml?temp=.7885706(PB,VB,JAVA,Pro*c,Delphi 五个实例)
      

  10.   

    小弟有个问题,想问问各位高手!
    一般大家在做数据处理通常在一个数据库。现在,我需要在一个数据库中连接另外一个库的一个表,和本数据库中的一个表作一个视图。问题是,创建的时候碰到权限问题,单独在这个数据库select另外那个数据库的表能够操作,但是,应用到创建视图的时候,就说那个数据库的表不存在,说明没能访问成功。希望各位高手能给点意见。谢谢!