Help! ASP连接ORACLE失败 (300分)

  • 主题发起人 主题发起人 Huzzz
  • 开始时间 开始时间
H

Huzzz

Unregistered / Unconfirmed
GUEST, unregistred user!
简单地做一个连接ORACLE的ASP页,SCRIPT如下:
<%set conn=server.createobject("adodb.connection")
dns="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=user1;Password=user1;Data Source=oracle"
conn.Open dns
SQL="SELECT * FROM customs where rownum < 20"
set rs=conn.execute(SQL)
%>
打开网页,出错信息:
Error Type:
OraOLEDB (0x80004005)
ORA-12546: TNS: 许可被拒绝
如果匿名用户为默认的,则报:
ORA-12638: 身份证明检索失败。

(WIN2000,ORACLE817)请帮忙分析。
 
可能是需要什么证书??
 
需要什么证书啊。我直接启动服务程序,则可以连接,也没有什么证书。
再说由IIS启动,也是有权限的用户,却不行。

网上很多介绍用ASP或PHP连接ORACLE的,试验之下却也会报身份证明或TNS错误。
估计应该是与ORACLE权限设置有关。可是我不论用什么用户登录都不行(只有在本机上
用本机当前用户登录才可以,WHY??)。
 
你做的可是中间层???如果这样的话,可以考虑连接的用户配置,oracle数据库配置。
和BDE或者ODBC配置或者OLE DB的情况,先不要运行,看看在中间层服务器测试是否通过
这些配置。
 
谢谢zitai。我做的是中间层。如果双击直接启动,中间层能连接ORACLE,说明一
切正常。但是现在我是用WEB连接,这个中间层由IIS启动,于是,错误出现了!??
:(
 
有没有配置Net8阿??应该是没有新创建一个listen.ora的原因吧。
 
mikegong,
谢谢你。
ORACLE服务器在另一台机上,已经配置好。
本机上装了NET8客户端,并已经配置好。
本机能正常连接ORACLE,SQL PLUS和PL/SQL DEV都跑得很好。
甚至连IUSER都赋了DBA的权限。
 
错误变了。我现在修改了问题。
 
想藏?哼:
>>xianjun 在 2001-12-21 16:06:33 提供了如下回答
>>是不是没有安装Oracle?[:D]
你真行,I服了U。你干脆说我没有装IIS,没有装WINDOWS,或者没有装CPU。
 
启动oracle服务后,请启动oracle的侦听试试。
 
[:D]
重新安装Windows及Oracle试试?
可能是装得不太好。
 
再没有回答了?
 
你的ADO中有关的ODBC如何配置?
 
这个要看看才知道,但这个ODBC应该是配置好的,因为我可以用非ASP程序的ADO连接这个DSN。
 
dns="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=user1;Password=user1;Data Source=oracle"
 
此文源自http://www.oradb.net
——————————————————————————————
ASP 中通过OLEDB访问 Oracle 的代码
系统环境:
1、操作系统:Windows 2000
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:/ORACLE

访问方法:
1、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager

创建新的用户:如user1/pass1,赋予connect,resource权限。
SQL> grant connect,resource to user1 identified by pass1;

SQL> conn user1/pass1
SQL> create table test(a date);

Oracle数据库的实例名,本例:oradb
Oracle用户名,本例:user1
Oracle主机字符串:oradb

tnsnames.ora文件中

ORADB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)

2、在IIS默认WWW目录下创建test.asp,用notebook编辑,输入以下代码
<%
set conn=server.createobject("adodb.connection")
dns="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=user1;Password=pass1;Data Source=oradb"
conn.Open dns

SQL="insert into test(a) values(sysdate)"
set rs=conn.execute(SQL)

set rs=nothing
conn.close
set conn=nothing
%>

<%
set conn=server.createobject("adodb.connection")
dns="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=user1;Password=pass1;Data Source=oradb"
conn.Open dns

SQL="select to_char(a,'hh24:mi:ss') from test"
set rs=conn.execute(SQL)

do while (not rs.eof)
%>
<table border=1>
<tr><td><%=rs.fields(0).value%></font></td>
</tr>
<%
rs.movenext
loop

rs.close
set rs=nothing
conn.close
set conn=nothing
%>

3、打开一个浏览器窗口,输入以下地址来查看运行结果,可以通过不断的按F5键来刷新
显示结果http://localhost/test.asp

总结: 利用以上代码,可以省去创建ODBC的麻烦,并提高效率。
 
有什么用?[:D]
 
set orasession=createobject("oracleinprocserver.xorasession")
set oradatabase=orasession.dbopendatabase("v8","anper/a09ne",0)
sql="insert into namecard values("& "'" & request("nameid") "'" &" )"
oradatabase.dbexecutesql(sql)

我这是通过ODBC连接的,需要注意的其一是NET8的配置,主要文件是tnsnames.ora。
其二是ODBC的配置。如果这两个做好,我想问题应该不大,当然前提是客户端PL/sql
要能连接上。
 
后退
顶部