ORACLE版块很久没有对问题解决的方法做汇总了,
现在小弟愿意出“资”200,把处理方法汇总,希望斑竹也能
借鉴下ORACLE中国用户讨论组的模式,对ORALCE版块进行整理
具体文章:
http://www.cnoug.org/viewthread.php?tid=17716
新手必读,内容十分详细。
希望大家给与支持,请勿灌水。。。。 谢谢大家。。
---------------------------------------------------------------
学习。关注
---------------------------------------------------------------
我想问个问题:如果修改了服务器上的计算机名称或者IP地址,服务起不来了,怎么做
---------------------------------------------------------------
修改监听器
---------------------------------------------------------------
直接修改LISTENER.ORA文件里面的 Host = <新机器名>,然后重新启动监听服务即可
lsnrctl start
---------------------------------------------------------------
支持!
如何启用审计功能:
修改数据库INIT.ORA文件中的audit_trail = true(注意把它前面的注释符#去掉)
重新启动数据库
DOS下执行
SVRMGRL
CONNECT INTERNAL/ORACLE
SHUTDOWN IMMEDIATE
STARTUP
然后用DBA用户登陆SQL*PLUS
CONNECT SYSTEM/MANAGER
创建一个审计:
SQL> audit create table by access whenever successful;
审计已成功。
SQL> select sessionid SID,userid USID,action# ACT,obj$name OBNAME,TIMESTAMP# TIME FROM SYS.AUD$;
SID USID ACT OBNAME TIME
----- ------ ---- ------- ------
202 SYSTEM 1 A 2002-08-24 00:59:01
说明审计已经启动。
---------------------------------------------------------------
学习!
---------------------------------------------------------------
學習。
---------------------------------------------------------------
study!
---------------------------------------------------------------
支持!
---------------------------------------------------------------
这不来了么!
---------------------------------------------------------------
sqlplus中refcursor的使用
16:00:10 SQL> VARIABLE v_cur REFCURSOR;
16:03:21 SQL> BEGIN
16:03:26 2 OPEN :v_cur FOR SELECT * FROM TB;
16:03:44 3 END;
16:03:47 4 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.93
16:03:48 SQL> PRINT v_cur;
COL1 COL2 COLNEW
---------- ------------------------------ --------------------
A aaa aaa
A aab aab
A aac aac
B bba bba
B bbb bbb
B bbc bbc
B bbd bbd
C ccc ccc
c TEMP TEMP
d ddd ddd
e eee eee
已选择11行。
已用时间: 00: 00: 00.63
16:03:58 SQL>
---------------------------------------------------------------
学习一下.
---------------------------------------------------------------
支持一把! :)
字段操作
添加:
alter table tbl_name add(addcol varchar2(10);
修改:
alter table tbl_name modify(col1 varchar2(20);
删除:
alter table tbl_name drop(col1);
改名:
ALTER TABLE tbl_name RENAME COLUMN col1 TO col2
设置字段的默认值:
ALTER TABLE table_name modify col_name default sysdate;
-----------------------------------------------------------------
过程简介
过程参数有三种: 输入,输出,输入和输出.
如下内容在 SQL*Plus 运行通过.
SQL>set serveroutput on -- 显示输出
SQL>CREATE OR REPLACE PROCEDURE prc_test(strIn VARCHAR2,strOut OUT VARCHAR2,strInOut IN OUT VARCHAR2)
IS
BEGIN
strOut := 'This is Output item';
strInOut := ' in and out item';
dbms_output.put_line('输入参数: ' ¦ ¦ strIn);
dbms_output.put_line('输出参数: ' ¦ ¦ strOut);
dbms_output.put_line('输入 ¦出参数: ' ¦ ¦ strInOut);
END prc_test; -- 建立过程
SQL>var strTest1 varchar2(20); -- 定义bind变量
SQL>var strTest2 varchar2(20); -- 定义bind变量
SQL>exec prc_test('input',:strTest1,:strTest2); -- 调用过程
-----------------------------------------------------------------
Oracle 对象命令参考
Table tab_
View view_
Function fnc_
Procedure prc_
Trigger trg_
Package pkg_
Type trp_
Package spec spc_
Package body bdy_
Type spec tps_
Type body tpb_
Java source jse_
-----------------------------------------------------------------
使用 MD5 算法
SQL>var v_test varchar2(32);
SQL> begin
2 :v_test:=RawToHex(UTL_RAW.Cast_To_Raw(DBMS_OBFUSCATION_TOOLKIT.MD5(input_string=>'ABC')));
3 end;
4 /
-----------------------------------------------------------------
---------------------------------------------------------------
btw: 大家想更快捷解决Oracle问题,就应把问题尽量描述清楚,及简明扼要` :)
如:
错误类:
操作系统: win2000 pro sp2
数据库: oracle 8i.1.6
错误信息: ORA--xxxxxx
学习类:
关于过程的学习,in 与 out 的使用. <- 简单明了~
如果代码过长的话,请尽量简短。 <- 不然的话,看代码就晕了 :)
---------------------------------------------------------------
没有多少料,只能跟着大虾们学习学习。顺便接点分。:)
---------------------------------------------------------------
我也用ORACLE,能不能先告诉我为什么选择ORACLE而不是IBM的DB2或者其它啊?
---------------------------------------------------------------
支持
限制特定IP访问数据库
以前有文档说增加或修改protocol.ora文件,
在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法。
在sqlnet.ora中增加如下部分
-----------------------------
来自 protocol.ora 的属性
tcp.validnode_checking=yes
#允许访问的IP
tcp.invited_nodes=(ip1,ip2……)
#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)
之后重新启动监听器即可
需要注意的地方:
1、tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主
2、一定要许可或不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响。
3、修改之后,一定要重起监听才能生效,而不需要重新启动数据库
4、任何平台都可以,但是只适用于TCP/IP协议
---------------------------------------------------------------
飘兄:
最近有点忙,没有支持点问题解决办法.不好意思啊.
UP一下, :)
顺祝大家中秋快乐.
---------------------------------------------------------------
下面是我遇到的问题并且在网上找到的解决资料,分享一下。
错误现象:
因误操作,数据库中某一数据文件被误删,
控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,
显示以下错误
ORA-01033: ORACLE initialization or shutdown in progress
模拟现象:
create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/
关闭所有服务stop.bat
net stop "OracleWebAssistant0"
net stop "OracleOraHome81TNSListener"
net stop "OracleServiceORADB"
shutdown
在操作系统中删除test.ora文件
重新启动服务start.bat
net start "OracleWebAssistant0"
net start "OracleOraHome81TNSListener"
net start "OracleServiceORADB"
服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
显示ORA-01033: ORACLE initialization or shutdown in progress
解决方法:
先让该数据文件脱机,就可以打开数据库
C:>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount
--ARCHIVELOG模式命令,文件名要大写
svrmgrl>alter database datafile 'C:\TEST.ORA' offline;
--NOARCHIVELOG模式命令
svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;
svrmgrl>alter database open;
--查询数据文件联、脱机状态
SQL> select file#,name,status from v$datafile;
SQL> drop tablespace test;
表空间已丢弃。
---------------------------------------------------------------
烤鸡翅膀我最爱吃,顶
---------------------------------------------------------------
收藏,谢谢。
---------------------------------------------------------------
学习
---------------------------------------------------------------
支持!!!!!