我们有什么办法可以在U-SQL DateTime.TryParse
条件下使用WHERE
吗?
我正在Azure U-SQL目录中创建存储过程。
简单的U-SQL脚本支持C#功能。
对于存储过程,脚本不会向我的自定义C#代码添加任何程序集引用,或者在调用存储过程时添加它时没有使用它。
答案 0 :(得分:1)
是的,可以使用内联功能。 This article显示了如何做到这一点。这是一个简单的例子:
//Name[1]
如果要使用已创建的程序集作为U-SQL类项目并进行注册,则可以使用Name
在存储过程中引用它:
Opportunity
答案 1 :(得分:0)
Using Function dt_TryParse_USQL
Using above code-behind and calling function. Function consumes a string and attempts to convert the string to a DateTime value using DateTime.TryParse. Using the Code-Behind above.
@employees =
SELECT * FROM
( VALUES
(1, "Noah", "2/16/2008"),
(2, "Sophia", "2/16/2008 12:15:12 PM"),
(3, "Liam", "16/02/2008 12:15:12"),
(4, "Amy", "2017-01-11T16:52:07"),
(5, "Justin", "")
) AS T(EmpID, EmpName, StartDate);
@result =
SELECT
EmpID,
EmpName,
ReferenceGuide_Examples.MyClass.dt_TryParse_USQL(StartDate) AS validated_StartDate
FROM @employees;
OUTPUT @result
TO "/Output/ReferenceGuide/DDL/Functions/dt_TryParse_USQL.csv"
USING Outputters.Csv(outputHeader: true);
https://msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/u-sql-functions
其他信息:Click here
答案 2 :(得分:0)
回答这部分问题:
对于存储过程,脚本不会向我的自定义C#代码添加任何程序集引用,或者在调用存储过程时添加它没有被使用。
U-SQL函数和过程带有自己的静态上下文,不会从调用上下文继承静态名称上下文。这允许独立于被调用的位置理解函数/过程的语义。
因此,为了引用汇编代码,您需要在目录中注册程序集,并使用REFERENCE ASSEMBLY
在过程中显式引用它。代码隐藏不应在程序中使用(因为程序存储以备将来使用)。