一洋

在Windows操作系统下,卸载Oracle 9i

htyy521 | 27 八月, 2006 15:03

在Windows操作系统下,卸载Oracle 9i :
1、停止所有Oracle服务
2、删除注册表中的所有关于Oracle项;
(1)在HKEY_LOCAL_MACHINESOFTWARE下,删除Oracle目录 (2)在HKEY_LOCAL_MACHINESYSTEMControlSet001Services下,删除所有Oracle项
(3)在HKEY_LOCAL_MACHINESYSTEMControlSet002Services下,删除所有Oracle项
(4)在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices下,删除所有Oracle项
(5)在HKEY_CLASSES_ROOT下,删除所有Oracle项
3、删除硬盘上所有Oracle文件?
(1)Oracle安装文件
(2)系统目录下,在Program files文件夹中的Oracle文件
4、重启,完成卸载。

asp调用orcle存储过程(过程中含有输出参数)

htyy521 | 27 八月, 2006 10:10

建立表:
SQL> create table CD_BILL_LOG
2 (
3 BILL_ID NUMBER,
4 DEAL_EMP_ID NUMBER,
5 REACH_DATE DATE,
6 DONE_DATE DATE,
7 BILL_STATUS VARCHAR2(10),
8 DEAL_DEPT_ID NUMBER,
9 SIGN NUMBER,
10 REMARK VARCHAR2(50)
11 )
12 ;

建立过程:


SQL> create or replace procedure
2 cd_update_log(inputremark varchar2,msg out float)
3 as
4 begin
5
6 update cd_bill_log a
7 set a.remark =inputremark --to_char(sysdate,'mi:ss')
8 where a.bill_id=45;
9 msg:=1;
10 commit;
11 end;

调用过程:


var conn = Server.CreateObject("ADODB.Connection");
conn.Open("sczbo","sczb","sczb");
var sp_common= Server.CreateObject("ADODB.Command");
var rs = Server.CreateObject("ADODB.Recordset");
conn.CursorLocation =3;

sp_common.CommandText = "cd_update_log";
sp_common.CommandType = 4;

var para1=sp_common.CreateParameter("inputremark", 129,1,50,"联通");
sp_common.Parameters.Append(para1);
var para2=sp_common.CreateParameter("msg", 3, 2);
sp_common.Parameters.Append(para2);
sp_common.activeConnection=conn;
sp_common.execute;
var msg=sp_common("msg");
Response.write( msg);
Response.end;


调用只含有输入参数的过程。(asp,oracle)

htyy521 | 27 八月, 2006 10:02

Response.ContentType = "text/xml";
Response.Expires =-1;
var conn = Server.CreateObject("ADODB.Connection");
conn.Open("sczb","sczb","sczb");
var comm= Server.CreateObject("ADODB.Command");
var rs = Server.CreateObject("ADODB.Recordset");
conn.CursorLocation =3;

var finishtime,yy,mm,bm,gd;
yy=Request("yy");
mm=Request("mm");
bm=Request("bm");
gd=Request("gd");
finishtime=mm+"/"+yy;



comm.CommandText = "HZBB_RWWCB_QUERY";
comm.CommandType = 4;
var para1=comm.CreateParameter("finishtime",200,1,50,finishtime);
comm.Parameters.Append(para1);
var para2=comm.CreateParameter("bm",200,1,50,bm);
comm.Parameters.Append(para2);
var para3=comm.CreateParameter("gd",200,1,50,gd);
comm.Parameters.Append(para3);
comm.activeConnection=conn;
rs=comm.execute;

。。。。


sql server数据库备份还原后,出现“对象名无效”问题解决办法。

htyy521 | 27 八月, 2006 10:00

USE master
go

EXEC sp_addlogin 'logname','logpwd','dftdb' //新建登陆,其中dftdb是登陆时默认的数据库,缺省为master
go

USE username //用户名
go
EXEC sp_change_users_login 'Update_One', 'UserName', 'LoginName'

go

//更改当前数据库中 SQL Server 用户与 Microsoft® SQL Server™ 登录之间的关系。

新问题:

执行通过,当telnet 127.0.0.1 1433出错:sql server 不存在或拒绝访问。

可能的问题在1433端口被屏蔽,可以通过netstat -an察看1433端口是否开启。

1433端口被屏蔽的原因可能是因为在XPSP2或则是2003没有安装SQLSP3升级包,1433端口被屏蔽掉了。

解决1433端口被屏蔽的办法:你也可以打开开始-->程序--Microsoft Sql Server-->服务器网络实用工具
然后启用WinSock代理,代理地址为127.0.0.1,代理端口为1433,这样也可以打开1433端口
记住用netstat -an 查看1433端口的开启情况


sql server 2000移植到orcle的心得体会

htyy521 | 27 四月, 2006 15:17

移植过程:采用的oracle的移植工具Migration WorkBenth

移植注意事项:

1. 移植前要在ODBC中建立DSN,由于移植的是sql server 2000,驱动选sql server

2. oracle实例中建立登陆用户,包括用户名和密码,并赋予权限(connectresourcedba)。这在使用WorkBenth过程中是要填写的内容。

3. 移植过程分为获取sql server Model,建立oracle Model和导入数据三部分。

4. 移植后我们会发现在oracle实例中有两个方案生成:omwb_emulationsa。其中omwb_emulation可以不予理会,它主要提供了弱游标,供sa方案中的存储过程调用。对于方案sa我们会注意到几点:原来sql server 中的数据,包括表,视图,存储过程,索引等都在这个方案中存放;原来sql server 表中的种子类型数据在方案sa中被统一管理,放在“序列”中;

原来的数据库名称xihang_info现在是方案sa中的表空间。

移植后注意事项:

1. 因为应用程序使用的是ODBC,涉及到几个连接字符: dsn usernamepassword。由于应用程序中的连接字符串是conn.Open("sczb","sczb","sczbpw"),而现有的schemasa,连接失败。现在有两种方案:改连接字符串或从新建立一个方案sczb。这里我们采用了第二种方案,新建方案sczb

方法是:先新建用户sczb,密码是sczbpw,权限是connectresourcedba;然后将方案sa导入到方案sczb中(若是导入到另外机器上,方案omwb_emulation一并导出再导入)。

2. sczb中修改视图和存储过程。修改视图只要把sql语句中的方案名sa删除或改为即可。存储过程需要修改的内容比较多,具体见下:

修改存储过程:

1.修改临时表

SQL的临时表用###开头,使用完后自动释放,ORACLE的临时表则存在数据库中,每个会话的数据都互不干涉。语法分别为:CREATE TABLE #TEMPID INTNAME VARCHAR20))CREATE GLOBAL TEMPORARY TABLE TEMPID INTNAME VARCHAR20))

2. IDENTITY字段

Oracle不支持自增长类型,在向表中插入含有IDENTITY字段的记录时,要显示声明。例如:

Insert into tbl values(序列名.nextval,字段1,字段2,。。。)。

3. SQLORACLE的游标
SQL
的游标用@@FETCH_STATUS判断是否还有数据,ORACLE的游标用%FOUND%NOTFOUND来判断游标是否结束。

4. 连接字符串:

SQL的字符串连接用+号,ORACLE字符串连接用||,单引号可以做转义符。因为在sql server

number类型的“+”运算也用到”+”,因此在移植后oracle对于number类型的“+”有时识别不出来,而作为字符连接来处理。

5. 游标的名称在移植后会有重复。不允许。

6. 日期类型数据要注意

其格式不同于sql server 中的“yyyy-mm-dd”格式,而是“dd-x-yyyy“格式。要用to_char(?,’yyyy-mm-dd’)处理成sql server 一样的格式。

7. oracle获取sql语句所影响的行数时,不像sql server @@rowcount直接获取那么简单,要分以下三种情况。

Oracle中对于隐性游标,获取行数的方法是通过SQL%rowcount直接获得。

对于显性游标获取行数通过cursor_name%rowcount获得,但有有以下sql语句:

For index in cusor_name loop

变量名:=cursor_name%rowcount;

End loop;

Fetch into 语句的话,rowcount=1

8. 获得年,月,日在oracle中不支持year(),month()和day()函数。

解决的方法是通过substr()函数。例如获取‘2000-01-10’的‘年’,可以通过substr(‘2000-01-10’,14)得到。

9. oracle不支持case语句。

sql server中语句:

CASE WHEN (GROUPING(BM_Name2) = 1) THEN '合计' ELSE ISNULL(BM_Name2,'未知') END AS BM_Name2,

oracle改写为decode语句:

decode(GROUPING(BM_Name2),1,'合计',nvl(BM_Name2,'未知')) BM_Name2

10. 左右连接问题。

sql server的连接语句如:

select a.idb.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on a.id=b.xiangmid

oracle中应改为:

Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where a.id=b.xiangmid(+);

sql server的连接语句如:

select a.idb.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on trim(a.id)=trim(b.xiangmid)

oracle中应改为:

Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where trim(a.id)=trim(b.xiangmid(+))

11.改好的存储过程,不能编译通过就认为ok了。编译通过只能说明在语法上没有问题了,要进一步执行看逻辑上是否还有问题。在编译时产生的错误是pl/sql错误,在执行时的错误是ora错误。

12.sql/plusworksheet中执行存储过程的语句是:execute 存储过程名(‘参数1‘,’参数2‘,。。)

但在执行返回多条记录集的存储过程,也就是参数中含有RC1 IN OUT Omwb_emulation.globalPkg.RCT1的存储过程时,执行起来略有不同。在sql plus中执行的语法如下:

Sqlvar rc1 refcursor;

Sqlexecute pro_name(‘参数1‘,’参数2‘,:rc1,。。)

Sqlprint rc1


sql server 2000移植到orcle的心得体会

htyy521 | 27 四月, 2006 15:17

移植过程:采用的oracle的移植工具Migration WorkBenth

移植注意事项:

1. 移植前要在ODBC中建立DSN,由于移植的是sql server 2000,驱动选sql server

2. oracle实例中建立登陆用户,包括用户名和密码,并赋予权限(connectresourcedba)。这在使用WorkBenth过程中是要填写的内容。

3. 移植过程分为获取sql server Model,建立oracle Model和导入数据三部分。

4. 移植后我们会发现在oracle实例中有两个方案生成:omwb_emulationsa。其中omwb_emulation可以不予理会,它主要提供了弱游标,供sa方案中的存储过程调用。对于方案sa我们会注意到几点:原来sql server 中的数据,包括表,视图,存储过程,索引等都在这个方案中存放;原来sql server 表中的种子类型数据在方案sa中被统一管理,放在“序列”中;

原来的数据库名称xihang_info现在是方案sa中的表空间。

移植后注意事项:

1. 因为应用程序使用的是ODBC,涉及到几个连接字符: dsn usernamepassword。由于应用程序中的连接字符串是conn.Open("sczb","sczb","sczbpw"),而现有的schemasa,连接失败。现在有两种方案:改连接字符串或从新建立一个方案sczb。这里我们采用了第二种方案,新建方案sczb

方法是:先新建用户sczb,密码是sczbpw,权限是connectresourcedba;然后将方案sa导入到方案sczb中(若是导入到另外机器上,方案omwb_emulation一并导出再导入)。

2. sczb中修改视图和存储过程。修改视图只要把sql语句中的方案名sa删除或改为即可。存储过程需要修改的内容比较多,具体见下:

修改存储过程:

1.修改临时表

SQL的临时表用###开头,使用完后自动释放,ORACLE的临时表则存在数据库中,每个会话的数据都互不干涉。语法分别为:CREATE TABLE #TEMPID INTNAME VARCHAR20))CREATE GLOBAL TEMPORARY TABLE TEMPID INTNAME VARCHAR20))

2. IDENTITY字段

Oracle不支持自增长类型,在向表中插入含有IDENTITY字段的记录时,要显示声明。例如:

Insert into tbl values(序列名.nextval,字段1,字段2,。。。)。

3. SQLORACLE的游标
SQL
的游标用@@FETCH_STATUS判断是否还有数据,ORACLE的游标用%FOUND%NOTFOUND来判断游标是否结束。

4. 连接字符串:

SQL的字符串连接用+号,ORACLE字符串连接用||,单引号可以做转义符。因为在sql server

number类型的“+”运算也用到”+”,因此在移植后oracle对于number类型的“+”有时识别不出来,而作为字符连接来处理。

5. 游标的名称在移植后会有重复。不允许。

6. 日期类型数据要注意

其格式不同于sql server 中的“yyyy-mm-dd”格式,而是“dd-x-yyyy“格式。要用to_char(?,’yyyy-mm-dd’)处理成sql server 一样的格式。

7. oracle获取sql语句所影响的行数时,不像sql server @@rowcount直接获取那么简单,要分以下三种情况。

Oracle中对于隐性游标,获取行数的方法是通过SQL%rowcount直接获得。

对于显性游标获取行数通过cursor_name%rowcount获得,但有有以下sql语句:

For index in cusor_name loop

变量名:=cursor_name%rowcount;

End loop;

Fetch into 语句的话,rowcount=1

8. 获得年,月,日在oracle中不支持year(),month()和day()函数。

解决的方法是通过substr()函数。例如获取‘2000-01-10’的‘年’,可以通过substr(‘2000-01-10’,14)得到。

9. oracle不支持case语句。

sql server中语句:

CASE WHEN (GROUPING(BM_Name2) = 1) THEN '合计' ELSE ISNULL(BM_Name2,'未知') END AS BM_Name2,

oracle改写为decode语句:

decode(GROUPING(BM_Name2),1,'合计',nvl(BM_Name2,'未知')) BM_Name2

10. 左右连接问题。

sql server的连接语句如:

select a.idb.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on a.id=b.xiangmid

oracle中应改为:

Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where a.id=b.xiangmid(+);

sql server的连接语句如:

select a.idb.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on trim(a.id)=trim(b.xiangmid)

oracle中应改为:

Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where trim(a.id)=trim(b.xiangmid(+))

11.改好的存储过程,不能编译通过就认为ok了。编译通过只能说明在语法上没有问题了,要进一步执行看逻辑上是否还有问题。在编译时产生的错误是pl/sql错误,在执行时的错误是ora错误。

12.sql/plusworksheet中执行存储过程的语句是:execute 存储过程名(‘参数1‘,’参数2‘,。。)

但在执行返回多条记录集的存储过程,也就是参数中含有RC1 IN OUT Omwb_emulation.globalPkg.RCT1的存储过程时,执行起来略有不同。在sql plus中执行的语法如下:

Sqlvar rc1 refcursor;

Sqlexecute pro_name(‘参数1‘,’参数2‘,:rc1,。。)

Sqlprint rc1


恭喜您成功申请ITPUB BLOG

htyy521 | 26 三月, 2006 20:54

请牢记您BLOG的域名
http://htyy521.itpub.net/
您BLOG的控制面板在
http://htyy521.itpub.net/admin.php
登陆口令就是论坛口令,BLOG的口令和论坛是捆绑的。您可以在控制面板里完成发表文章,修改名称,模版以及观察统计数据等功能
全体ITPUB BLOG的内容首页在
http://weblog.itpub.net/
可以在这里了解整个ITPUB BLOG的状况,包括最新文章,BLOG列表,排名,统计数据等
怎样才可以使自己的BLOG变得知名?
只有宣传才可以使网站的访问增多,您可以把您的BLOG连接写在签名档里,或者在帖子里介绍给别的会员,也可以在别的网站和现实场合进行广泛的宣传。如果您的BLOG能被搜索引擎收录,那也对增加流量有所帮助。这也许需要您到一些常用搜索引擎那里登录一下。百度的登录入口:
http://www.baidu.com/search/url_submit.html
google的登录入口
http://www.google.com/intl/zh-CN/add_url.html
登录可以帮助您的BLOG尽快被收录(否则可能要等待比较长的时间)
法律责任
ITPUB是中华人民共和国境内网站,请大家在发表言论时注意遵守中华人民共和国法律,尊重知识产权,ITPUB只提供寄存平台,任何网友的个人言论都不代表ITPUB的观点,ITPUB也不会为网友的个人行为承担法律义务和责任。
 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by pLog - Design by BalearWeb