当前位置:数据库 > SQLServer >>

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时,没跳出选择组件的界面

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,