Tsql 使T-SQL代码适应PL/SQL代码
我只是在将一些T-SQL代码转换为PL/SQL时遇到了一个问题 这是代码的原始部分:Tsql 使T-SQL代码适应PL/SQL代码,tsql,variables,plsql,size,declare,Tsql,Variables,Plsql,Size,Declare,我只是在将一些T-SQL代码转换为PL/SQL时遇到了一个问题 这是代码的原始部分: SET @ISOweek= DATEPART(wk,@DATE)+1 -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104') 经过多次研究,我修改如下: SET @ISOweek = TO_NUMBER(TRUNC(@DATE, 'IW')) + 1 - TO_NUMBER(TRUNC( (TO_CHAR
SET @ISOweek= DATEPART(wk,@DATE)+1
-DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104')
经过多次研究,我修改如下:
SET @ISOweek = TO_NUMBER(TRUNC(@DATE, 'IW')) + 1
- TO_NUMBER(TRUNC( (TO_CHAR(TRUNC(@DATE, 'YYYY'))) + '0104', 'IW'))
我无法测试我的代码,这就是我来这里寻求您帮助的原因。你能告诉我这是否正确吗?我要修改的是因为我是一个迷路的人。。。
我在这个网站上读了很多文章,总是很有帮助
谢谢你的回答
诚恳地
纪尧姆
第一个问题没关系,我得到了很多回复和thnak;)。
但我还有一个问题:
我的T-SQL脚本:
USE [myBD ]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function [Entity].[LPAD]
(
@pad_value varchar(500),
@pad_length int,
@pad_with varchar(10) = ' '
)
returns varchar(5000)
as
BEGIN
return ( replace(str(@pad_value,@pad_length),' ',@pad_with) )
END
GO
我将其转换为PL/SQL:
create OR REPLACE FUNCTION myBDOrcl.LPAD
(
pad_value varchar2,
pad_length number,
pad_with varchar2 := ' '
)
return varchar2
is retour varchar2(5000);
BEGIN
retour := replace(TO_CHAR(pad_length, pad_value ), ' ', pad_with);
return retour;
END;
我演剧本,没关系。但是,我不知道如何修改我的变量:pad_value_varchar2和其他变量,以指定大小。。。
我想放置一个declare块,但它不起作用
感谢大家的帮助在Oracle PL/SQL中没有
集合
,变量没有前缀@
,SQL中的字符串连接运算符是|
而不是+
,赋值运算符是:=
。您应该向我们展示完整的存储过程OK谢谢您的回答,我无法向我们展示我工作的文件,因为它受到限制。但是你能告诉我如何修改代码的原始部分吗?因为我不是PL/SQL方面的专家。。。再次感谢您的回答您尝试过Oracle 11g R2的set吗?您应该能够在那里测试PL/SQL。tsql代码的预期用途是否可能重复?从日期获取ISO周数
-变量?Oracle PL/SQL中没有集
,变量没有前缀@
,SQL中的字符串连接运算符是|
而不是+
,赋值运算符是PL/SQL中的:=
。您应该向我们展示完整的存储过程OK谢谢您的回答,我无法向我们展示我工作的文件,因为它受到限制。但是你能告诉我如何修改代码的原始部分吗?因为我不是PL/SQL方面的专家。。。再次感谢您的回答您尝试过Oracle 11g R2的set吗?您应该能够在那里测试PL/SQL。tsql代码的预期用途是否可能重复?从日期获取ISO周数-变量?