SQL Server 存储过程 转为 Oracle
补充:CREATE OR REPLACE PROCEDURE proc_Inf_Add
(
@Name varchar(20),
@Size bigint,
@Tname varchar(20),
@Text varchar(50),
@Date varchar(30),
@ture image
)
as
declare @Tid int
select @Tid=Tid from Type where Tname=@Tname
if @Tid is not null
begin
insert into Inf(Name,Size,Tid,Text,Date,ture) values(@Name,@Size,@Tid,@Text,Convert(Datetime,@Date),@ture)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
追问:非常感谢!我把 @ 换成了 V_ ,int 换成了 number,提示下面的错误
PROCEDURE YSGF.PROC_INF_ADD 编译错误
错误:PLS-00103: 出现符号 "NUMBER"在需要下列之一时:
:= . ( @ % ;
行:12
文本:V_Tid number
答案:CREATE OR REPLACE PROCEDURE proc_Inf_Add
(
v_Name in varchar2,
v_Size in number,
v_Tname in varchar2,
v_Text in varchar2,
v_Date in varchar2,
v_ture in blob --oracle中没有image,需要在Inf表中修改这个字段的类型,改为blob即可
)
is
v_Tid number;
begin
select Tid into v_Tid from Type where Tname=v_Tname;
if v_Tid is not null then
insert into Inf(Name,Size,Tid,Text,Date,ture) values(v_Name,v_Size,v_Tid,v_Text,to_date(v_Date, 'yyyy-mm-dd'),v_ture);
end if;
end;
其他:三点:
一,IMAGE 要改用 BLOB
二,conver那整个函数换成sysdate即可
三,变量定义前的@都去掉
上一个:在安装sql server 2005的时候,没有出现如下图的组件选择界面,之后只有客户端组件和文档、示例和示例数据
下一个:在安装sql server 2005时,没跳出选择组件的界面