写了个存储过程,不知道怎么执行!请大家看看

wxj5595159 2010-05-28 02:52:29
create or replace procedure SP_name(name in VARCHAR2,money out number) is
begin
select sal into money from emp where ename=name; --Oracle自带的表,输入员工名字,求出工资
end SP_name;

请问如何执行这个存储过程?
或者存储过程可能就写错了
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_liucj 2010-05-29
  • 打赏
  • 举报
回复
oracle 和sqlserver的存储过程写法差别挺大嘛,我不会plsql
sych888 2010-05-28
  • 打赏
  • 举报
回复
create or replace procedure testOut(v_id int,v_name out varchar(50))
return void
as
begin
SELECT vname into v_name from tttt where id=v_id;
return;
end;


create or replace function getOut()
return varchar(50)
as
declare v_name varchar(50);
begin
perform testOut(560736,v_name);
return v_name;
end;

select getOut()
永生天地 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 wxj5595159 的回复:]
create or replace procedure SP_name(name in VARCHAR2,money out number) is
begin
select sal into money from emp where ename=name; --Oracle自带的表,输入员工名字,求出工资
end SP_name;

请问如何执行这个存储过程?
或者存储过程可能就写……
[/Quote]
你是些oracle还是写sql server的存储过程
wxj5595159 2010-05-28
  • 打赏
  • 举报
回复
看来Oracle和SqlServer存储过程的写法还是有很多不同的
v1ctory1216 2010-05-28
  • 打赏
  • 举报
回复

exec sp_name 并给@name赋值

Mr_Nice 2010-05-28
  • 打赏
  • 举报
回复
USE AdventureWorks;
GO
IF OBJECT_ID ( 'Production.usp_GetList', 'P' ) IS NOT NULL
DROP PROCEDURE Production.usp_GetList;
GO
CREATE PROCEDURE Production.usp_GetList @product varchar(40)
, @maxprice money
, @compareprice money OUTPUT
, @listprice money OUT
AS
SELECT p.name AS Product, p.ListPrice AS 'List Price'
FROM Production.Product p
JOIN Production.ProductSubcategory s
ON p.ProductSubcategoryID = s.ProductSubcategoryID
WHERE s.name LIKE @product AND p.ListPrice < @maxprice;
-- Populate the output variable @listprice.
SET @listprice = (SELECT MAX(p.ListPrice)
FROM Production.Product p
JOIN Production.ProductSubcategory s
ON p.ProductSubcategoryID = s.ProductSubcategoryID
WHERE s.name LIKE @product AND p.ListPrice < @maxprice);
-- Populate the output variable @compareprice.
SET @compareprice = @maxprice;
GO



带有输出参数的,参考看看。
v1ctory1216 2010-05-28
  • 打赏
  • 举报
回复

create procedure SP_name
@name varchar(50)
as
begin
select sal from emp where @name=name; --Oracle自带的表,输入员工名字,求出工资
end

Mr_Nice 2010-05-28
  • 打赏
  • 举报
回复
USE AdventureWorks;
GO
IF OBJECT_ID ( 'HumanResources.usp_GetEmployees', 'P' ) IS NOT NULL
DROP PROCEDURE HumanResources.usp_GetEmployees;
GO
CREATE PROCEDURE HumanResources.usp_GetEmployees
@lastname varchar(40),
@firstname varchar(20)
AS
SELECT LastName, FirstName, JobTitle, Department
FROM HumanResources.vEmployeeDepartment
WHERE FirstName = @firstname AND LastName = @lastname;
GO



参考

执行的时候
exec 存储过程名称

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧