首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle中的过程转换

Oracle中的过程转换
EN

Stack Overflow用户
提问于 2017-12-19 15:05:33
回答 1查看 43关注 0票数 0

我是这里的新成员,所以如果我不能遵守这里的规则,请向我道歉。我使用的是Oracle 11g速成版本以及pl/sql。我正在尝试转换oracle 11g中的sql服务器数据库。到目前为止,我已经做了一切。但是现在我正在尝试转换procedures。我已经做了所有的改变,但我仍然不能完全制定程序。

这是SQL server中的程序代码:

代码语言:javascript
复制
create proc Result_proc 
@name varchar(40),
@Test varchar(40)
as
(
select * from [Result View] where ([Student Name] = @name AND Test# IN (@Test)) 
)

ORACLE中的转换代码:

代码语言:javascript
复制
create or replace procedure Result_proc ( 
p_name varchar2,
p_Test varchar2)
as
begin
(
select * from ahmad where (Student_Name = p_name AND Test# IN (p_Test)) 
)
end;

在这个映像中,当我在PL/SQL中运行转换后的代码时,它没有正确地执行:PL/SQL中转换proc的输出

输出:

代码语言:javascript
复制
SQL> 10
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-19 16:15:04

在Server中,此存储过程意味着“将此select语句的结果返回给客户端”。在MSSQL中返回记录集是常见的方法。

当使用Oracle时,默认的方法是使用ref游标输出参数。此过程应转换为类似于

代码语言:javascript
复制
create procedure Result_Proc(p_Name varchar2, p_Test varchar2, p_Result out sys_refcursor) is
begin
  open p_result for
    select * from "Result View" where student_name = p_Name and test# = p_Test;
end;

但一般来说,更好的方法是完全放弃这种垃圾程序。与MSSQL不同,Oracle不需要选择SPs作为安全调用。更强大和方便的方法就是直接选择你需要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47889830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档