学习笔记(三)
1:windows下手工建立数据库2:WINDOWS下手动启动数据库3:临时表的学习4:SQLPLUS中的NEW_VAL的用法5:UNION中的ORDER BY [@more@]1:手工创建数据库1.1:准备初始化参数文件1.2:ORADIM创建实例。 (创建口令文件,创建服务) --假如实例名love1.3:$ORA_BASE变量指定的目录下的ADMIN子目录,建立一个love文件夹及子文件夹 (可以拷贝D:oracleora92adminsample文件夹下的内容到love子文件夹下)1.4:STARTUP NOMOUNT PFILE=D:ORACLEADMINLOVEPFILEINITLOVE.ORA'; 可以创建SPFILE:CREATE SPFILE FROM PFILE;1.5:准备创建数据文件和
学习笔记(二)
1:create procedure proc_name authid current_user/authid definer 创建存储过程的两种权限模式2:UTL_FILE包的简单用法 PROCEDURE FCLOSEPROCEDURE FCLOSE_ALLPROCEDURE FCOPYPROCEDURE FFLUSHPROCEDURE FGETATTRFUNCTION FGETPOS RETURNS BINARY_INTEGERFUNCTION FOPEN RETURNS RECORDFUNCTION FOPEN_NCHAR RETURNS RECORDPROCEDURE FREMOVEPROCEDURE PUT_RAWPROCEDURE PUT_NCHARPROCEDURE PUT_LINE_NCHARPROCEDURE PUT_LINEPROCEDURE PUTF_NCHARPROCEDURE PUTFPROCEDURE PUTPROCEDURE NEW_LINEFUNCTION IS_OPEN RETURNS BOOLEANPROC
[转载]延迟块清除
1:原文出自:什么是延迟块清除http://www.itpub.net/728948,1.htmlhttp://www.itpub.net/showthread.php?threadid=596002http://zhouwf0726.itpub.net/post/9689/272804NinGoo回复的内容:在oracle的block上都有活动事务的标志的,如果一个事务commit后,由于某些block在commit之前已经写回datafile,或者事务影响到的block数过多,则commit的时候只会清理undo segment header中的事务表信息,data block上的事务标志不会清除,在否则代价过高。那么在一些读取这些block时,需要将这些事务标志进行清除,就是延迟块清除2:另外一贴:没有
[转载]DUAL被DROP了
此文暂时没有测试过,转载SQL> create pfile=’d:pfile.bak’ from spfileSQL> shutdown immediate在d:pfile.bak文件中最后加入一条:replication_dependency_tracking = FALSE重新启动数据库:SQL> startup pfile=’d:pfile.bak’SQL> create table “sys”.”DUAL”( “DUMMY” varchar2(1) )pctfree 10 pctused 4;SQL> insert into dual values(‘X’);SQL> commit;SQL> Grant select on dual to Public;授权成功。SQL> select * from dual;D-XSQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORA
OMS初次使用
原先一直都没有怎么去使用过EM(特别是OMS),以前用的使用EMC最多也就是以独立方式使用,因为还是喜欢SQLPLUS,EM给我的感觉就是一个字“慢”,所以一直也没有去研究过他,最近好奇就用下。结果没有想到配置OMS竟然还是比较麻烦的,还有原先NINGOO的关于EMCA的介绍,今天也知道这个到底是什么东东了。[@more@]NINGOO的关于EMCA的用法:http://ningoo.itpub.net/post/2149/226160WINDOWS下(V9i):1:首先需要配置资料库2:启动服务OracleOraHome92ManagementServer3:启动EM(OMS方式启动),输入主机名,SYSMAN登陆 SYSMAN/OEM_TEMP4
DB_CREATE_***参数
SQL> show parameter db_createNAME TYPE VALUE------------------------------------ ----------- -------------------------db_create_file_dest stringdb_create_online_log_dest_1 stringdb_create_online_log_dest_2 stringdb_create_online_log_dest_3 stringdb_create_online_log_dest_4 stringdb_create_online_log_dest_5 stringSQL> 这些参数是9i新增的[@more@]如果不指定这几个参数,会报错。SQL> create tab
重命名数据文件
1:ALTER TABLESPACE TABLESPACE_NAME OFFLINE;2:操作系统重命名文件3:ALTER TABLESPACE TABLESPACE_NAME DATAFILE RENAME 'd:oracleoradatalove2008.dbf' RENAME TO 'd:oracleoradatalovehlj.dbf';4:ALTER TABLESPACE TABLESPACE_NAME ONLINE;5:CREATE TABLESPACE TABLESPACE_NAME DATAFILE 'D:ORACLEORADBLOVE2008.DBF' REUSE;[@more@]测试用例:SQL> alter tablespace love2008 offline;表空间已更改。--操作系统修改数据文件名字SQL> select file_name from dba_data_files where tablEspace_name='LOVE2008';FILE_NAME-----
[转载]xhost知识
xhost 是用来控制X server访问权限的。 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA是client,但是作为图形来说, 是在hostA上显示的,需要使用hostA的Xserver,所以hostA是 server.因此在登陆到hostB前,需要在hostA上运行xhost + 来使其它用户能够访问hostA的Xserver. xhost + 是使所有用户都能访问Xserver. xhost + ip使ip上的用户能够访问Xserver. xhost + nis:user@domain使domain上的nis用户user能够访问 xhost + inet:user@domain使domain上的inet用户能够访问。出自:不详[@more@]
王姓勇夺第一
昨天,偶然间发现了这个,我们王家成为了百家姓的榜首。呵呵。祝贺一下。声明:不知道这个对不对,因为不知道哪里是权威。[@more@]
一个简单的SQL
在8.1.7的版本之前,是不能够使用分析函数。那如何实现这种情况哪?在之前的版本中。SQL> select * from test; ID---------- 111 111 111 100 100 111 120 111 111 111 100 ID---------- 100 111 120实现为: ID1 ID2---------- ---------- 100 1 100 2 100 3 100 4 111 1 111 2 111 3 111
EXP/IMP的学习
1>:导出某个用户下的某个表如何exp userid=system/love2008 tables=love2008.test file=a.dmp2>:导出某个用户下的某个表的部分数据exp userid=system/love2008 tables=love2008.test file=a.dmp query="""where id>0 and name='2.0'"""3>:报错:IMP-00002:无法打开要读取的a.dmpexp userid=system/love2008 tables=love2008.test file=a.dmp;这个错误就是因为FILE参数指定的是a.dmp;结果生成的文件就是a.dmp;,不应该在最后加;imp userid=system/love2008 fromuser=love2008 touser=love2008 fi
关于ROLE的IDNTIFIED CLAUSE
语法:CREATE ROLE role [ NOT IDENTIFIED | IDENTIFIED { BY password | USING [ schema. ] package | EXTERNALLY | GLOBALLY } ] ; 1:CREATE ROLE ROLE_NAME IDENTIFIED BY PWD; 之后要用SET ROLE来激活2: 角色和权限的生效时间[@more@]1>:创建ROLE带有IDENTIFIED 子句:SYS用户 SQL> revoke create table from love20082 ;撤销成功。SQL> create role vvv identified by vvv;角色已创建SQL> grant create table to vvv;授权成功。SQL
病毒再一次席卷了我的笔记本
上周四刚重装的系统(没有安装杀毒软件,没有格式化D、E盘),今天那些隐藏起来的病毒再一次的席卷了我薄弱的笔记本,哎,看样以后做事要斩草除根呀(呵呵)。[@more@]为了不让病毒在卷土从来,我决定安装个杀毒软件(瑞星)。我用这个勤劳的小狮子干掉了我机子里隐藏的病毒,看到一个个被干掉的病毒,爽。通过这几次安装系统(主要俺的光驱坏了,只有通过虚拟软区安装,而且更加麻烦的是还要安那些必须要的软件,一个字,累),让我感觉到病毒真的太可怕了,为什么这么多黑客非要开发这些病毒那?使我也有种想要开发杀毒软件的想法(只是
[转载]修改数据库名(不用ORACLE的工具)
在网上有这篇文章,我就写在自己BLOG上,留个记录(此文章我还没有测试过)http://www.manning-sandbox.com/thread.jspa?threadID=1690&tstart=120[@more@]Step 1. First of all, it is a good idea to backup the database.Step 2. Once you have backed up the datbaase, you can then dumpthe controlfile to trace. Issue the ALTER DATABASE BACKUPCONTROLFILE TO TRACE statement.Step 3. Shutdown the Database.Step 4. Edit the INIT.ORA file or CONFIG.ORChange the DB_NAME to the new DATABASE NAME:- DB_NAME = <new Dbna
修改归档方式
%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开)SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档)SQL> exit (退出)[@more@]
触发器的管理
1:显示触发器信息2:禁止/启用个别触发器3:禁止/启用所有触发器4:重新编译触发器5:删除触发器[@more@]1:显示触发器信息select trigger_name,status from user_triggers where table_name = 'test';2:禁止/启用个别触发器alter trigger test_tri disable;alter trigger test_tri enable;3:禁止/启用所有触发器如果表上存在多个触发器,可以用ALTER TABLE来启用或禁止多个触发器alter table test disable all triggers;alter table test enable all triggers;4:重新编译触发器alter trigger test_tri compile;5:删除触发器drop trigger
netmanager的一些小的用法
1:<概要文件栏>相当于客户端2:<服务命名栏>栏的<服务名>项要和<监听器栏>中的<全局服务名>必须相同.(随便字符都可以)3:如果想要用主机名的形式解析必须要概要文件栏配置允许主机名解析conn love2008/love2008@"love2008"配置在host文件中于IP地址对应2:检查端口是否被占用[@more@]今天发现,在监听器的全局数据库名是任何字符都可以(只要是通过客户端的TNSNAME形式连接)。帖子地址:里面有些介绍http://www.itpub.net/750073.html2:检查端口是否被占用: netstat -a
一次插入多表的语法
1:INSERT ALL2:INSERT FIRST的语法3:测试用例create table a( id number, name varchar2(20), addr varchar2(20));create table b( id number, name varchar2(20), addr varchar2(20));create table c( id number, name varchar2(20), addr varchar2(20));insert into c values(1,'wzk','hlj');insert into c values(2,'zx ','xj ');insert into c values(3,'www','cds');[@more@]---------无条件插入insert allinto a values(id,name,addr)into b values(id,name,addr)select id,name,addr from c;-------------------------
dbms_random随机包
SQL> desc dbms_randomPROCEDURE INITIALIZE参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL BINARY_INTEGER INFUNCTION NORMAL RETURNS NUMBERFUNCTION RANDOM RETURNS BINARY_INTEGERPROCEDURE SEED参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL BINARY_INTEGER INPROCEDURE SEED参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL VARCHAR2 IN
oracle 9i 默认表空间的基础(转载)
原地址:http://blog.itpub.net/post/7242/394192. 默认临时表空间一旦被指定,将无法在改成PERMANET:3. 在删除默认临时表空间必须先重新指定默认临时表空间4. 默认临时表空间无法OFFLINE:[@more@]在9i之前,如果一个数据库用户没有被指定默认临时表空间,那么oracle就会使用system表空间作为该用户的临时表空间,这是很危险的。在9i里面,database可以被指定一个默认临时表空间。这样如果数据库用户没有被明确指定临时表空间,oracle 9i就会自动指定database的默认临时表空间作为该用户的临时表空间。 我们可以通过下面的语句来