Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用经典asp.NET实现SQL到Oracle的迁移_Sql Server_Oracle_Asp Classic - Fatal编程技术网

Sql server 使用经典asp.NET实现SQL到Oracle的迁移

Sql server 使用经典asp.NET实现SQL到Oracle的迁移,sql-server,oracle,asp-classic,Sql Server,Oracle,Asp Classic,我正在进行sql到oracle的迁移。 我从未使用过经典的asp,在这方面我需要一些帮助 这就是我现在的代码 <select onChange="AlterarDisabled();/*DGT();*/" name="TIPO_PLANO" id="TIPO_PLANO"> <% sSql = "TP_15_SP" & "'" & ENTIDADE & "'" set oRS = GlobaloConn.Execute(sSql)

我正在进行sql到oracle的迁移。 我从未使用过经典的asp,在这方面我需要一些帮助

这就是我现在的代码

<select onChange="AlterarDisabled();/*DGT();*/" name="TIPO_PLANO" id="TIPO_PLANO">
<%
    sSql = "TP_15_SP" & "'" & ENTIDADE & "'"

    set oRS = GlobaloConn.Execute(sSql)

    do while not oRS.Eof
        if oRS.Fields(0) = "04" then
        if BALCAO = "B0142" or BALCAO= "B0593" then
            %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
            end if
    else
        %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
    end if
    oRS.MoveNext
     loop

     set oRS = nothing
%>
</select>
现在我必须连接到Oracle并运行Oracle函数。 这是oracle函数

create or replace 
function TP_15_FN(v_CdEnt IN VARCHAR2) return SYS_REFCURSOR
as
l_return   SYS_REFCURSOR;
BEGIN
-- This procedure was converted on Fri Apr 05 17:05:05 2013
   open l_return for SELECT * FROM TP_15
   WHERE CDENT = v_CdEnt
   ORDER BY 1 NULLS FIRST;

   return l_return;
END;
这是我应该用来调用这个函数的代码。我所需要的就是改变
sSql=“TP_15_SP”&“&ENTIDADE&”
转换为
sSql=“TP_15_FN”(“&”&ENTIDADE&“)”
。 没用了,有什么想法吗

<select onChange="AlterarDisabled();/*DGT();*/" name="TIPO_PLANO" id="TIPO_PLANO">
<%
        sSql = "TP_15_FN(" & "'" & ENTIDADE & "')"

        set oRS = GlobaloConn.Execute(sSql)

        do while not oRS.Eof
            if oRS.Fields(0) = "04" then
            if BALCAO = "B0142" or BALCAO= "B0593" then
                %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
                end if
        else
            %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
        end if
        oRS.MoveNext
         loop

         set oRS = nothing
%>
</select>

我自己设法解决了,这很好。这是我的最终代码。 我还必须将
PLSQLRSet=1
添加到我的连接字符串中

Set cmd = Server.CreateObject("ADODB.Command")
Set oRS = Server.CreateObject("ADODB.Recordset")

With cmd
    .ActiveConnection = GlobaloConn
    .CommandText = "TP_15_SP"
    .CommandType = 4 'adCmdStoredProc
    .Parameters.Append cmd.CreateParameter("v_CdEnt", 129 , 1 , 4, ENTIDADE)
End With

Set oRS = cmd.Execute   

do while not oRS.Eof 
    if oRS.Fields(0) = "04" then
        if BALCAO = "B0142" or BALCAO= "B0593" then
            %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
        end if
    else
        %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
    end if

    oRS.MoveNext
loop

oRS.Close

Set oRS  = nothing
Set cmd  = nothing
Set cmd=Server.CreateObject(“ADODB.Command”)
Set oRS=Server.CreateObject(“ADODB.Recordset”)
使用cmd
.ActiveConnection=GlobaloConn
.CommandText=“TP_15_SP”
.CommandType=4'adCmdStoredProc
.Parameters.Append cmd.CreateParameter(“v_CdEnt”,129,1,4,ENTIDADE)
以
设置oRS=cmd.Execute
不使用oRS.Eof时请勿使用
如果OR.字段(0)=“04”,则
如果BALCAO=“B0142”或BALCAO=“B0593”,则

%>删除/评论错误,然后继续。获取什么错误描述:ORA-00900:无效的SQL语句帮助上下文:0帮助文件:本机错误:900错误号:-2147217900错误源:OraOLEDB SQL状态:在sSql=“TP_15_FN(“&“”&ENTIDADE&“)”行之后,如果给出响应,将打印什么内容。write(sSql)在Oracle编辑器上执行正常吗?或者您是否缺少“call”关键字或“;”
Set cmd = Server.CreateObject("ADODB.Command")
Set oRS = Server.CreateObject("ADODB.Recordset")

With cmd
    .ActiveConnection = GlobaloConn
    .CommandText = "TP_15_SP"
    .CommandType = 4 'adCmdStoredProc
    .Parameters.Append cmd.CreateParameter("v_CdEnt", 129 , 1 , 4, ENTIDADE)
End With

Set oRS = cmd.Execute   

do while not oRS.Eof 
    if oRS.Fields(0) = "04" then
        if BALCAO = "B0142" or BALCAO= "B0593" then
            %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
        end if
    else
        %><option value="<%=oRS.Fields(0)%>"><%=oRS.Fields(1)%></option><%
    end if

    oRS.MoveNext
loop

oRS.Close

Set oRS  = nothing
Set cmd  = nothing