javascript - 使用 JavaScript 连接到 Oracle 数据库
问题描述
我想通过 JavaScript 代码连接到 Oracle 数据库。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Connecting to Oracle using JavaScript</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
var conObj = new ActiveXObject('ADODB.Connection');
var connectionString = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.119.132.175)(PORT=1521)))(CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)));User Id=mdm;Password=admin;"
conObj.Open(connectionString);
var rs = new ActiveXObject("ADODB.Recordset");
sql = "SELECT SYSDATE FROM DUAL"
rs.Open(sql, conObj);
alert(rs(0));
rs.close;
conObj.close;
//-->
</script>
</body>
</html>
我收到 ActiveXObject 未定义错误 ActiveXObject 似乎不适用于 chrome 浏览器!
解决方案
有几个问题需要考虑
- 您需要客户端中的驱动程序来处理数据库
- 由于您想从客户端连接,因此您的凭据必须存在于客户端。
- 您的数据库端口和 url 必须可以从浏览器访问
所有这些问题都意味着您的数据库将完全暴露给任何人。
为了避免一些风险,我认为最好的方法(如果您仍然想避免使用服务器代码)是使用 oracle 提供的 Web 服务。oracle docs 中有几个使用 SOAP 和 REST 的示例,这里有一个使用 REST 的示例。创建资源后,您可以使用 ajax 调用该资源。为防止浏览器在尝试执行跨域 ajax 时做出限制,应在数据库服务器中设置Access-Control-Allow-Origin标头。通过这种方式,您无需服务器代码即可访问数据库。