另,在问题前一定要先搜索一下,查看一下各分版的faq及精华区,看是否有同类的问题。
解决方案 »
- bat并发执行sqlldr命令,并监控完成状态的问题
- JDBC连接Oracle10g数据库重启电脑之后就连接不上了错误信息如下
- BCP API是否能将数据导入到Oracle?
- 请教Oracle procedure应用
- 大家看看这个sql咋写啊
- 用sql或函数如何将ID相同的行合并到一行?
- em问题谢谢了 真的急 弄了一上午了
- 讨论表空间的实际应用划分问题!
- 使用select语句返回含有lob字段的时候,如果是微软驱动(msdaora),就会出错,但如果换成oracle驱动(OraOLEDB.Oracle)就不会这样,你
- 请教:关于SQL plus显示时间的格式问题
- 触发器调用存储过程,且存储过程更新表的问题?在线求助
- 对clob字段的查询可用dbms_lob.instr(clob_field,'some text',1,1) > 0作为查询条件,但好像直接用instr(clob_field,'some text',1,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表不存在,则建立此表.
================================== 创建表空间 ------------------- 本地管理表空间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$为每个自由区间保留一个数据行
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;
http://www.itpub.net/showthread.php?s=&threadid=105392
如下是在 图形方式(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 地址改变的话,还是要重配置.
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/
由大家每打开的 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 方便吧)
( "属性" -> "选项" -> "快速编辑模式")
------------------------------------------------------------------------------
http://expert.csdn.net/Expert/topic/2435/2435782.xml?temp=.7885706(PB,VB,JAVA,Pro*c,Delphi 五个实例)
一般大家在做数据处理通常在一个数据库。现在,我需要在一个数据库中连接另外一个库的一个表,和本数据库中的一个表作一个视图。问题是,创建的时候碰到权限问题,单独在这个数据库select另外那个数据库的表能够操作,但是,应用到创建视图的时候,就说那个数据库的表不存在,说明没能访问成功。希望各位高手能给点意见。谢谢!