Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 使T-SQL代码适应PL/SQL代码_Tsql_Variables_Plsql_Size_Declare - Fatal编程技术网

Tsql 使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

我只是在将一些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(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周数-变量?