SQLAlchemy 中用户定义的标量值函数
User defined scalar-valued functions in SQLAlchemy
假设我已经定义了一个 SQL 服务器函数 myfunc
它将一个整数作为输入并且 returns 一个这样的整数
CREATE FUNCTION myfunc
(@val as INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN
@val + 10
END
有没有办法在 SQLAlchemy 中调用这个函数? 我知道我不能像下面那样做,因为它不是公认的内置函数函数名称 ('myfunc' is not a recognized built-in function name.
)
select(func.myfunc(x.c.mycolumn).label("my_column_plus_10"))
Scalar-valued UDF 必须在 SQL 服务器中使用 schema-qualified 名称调用。
CREATE FUNCTION myfunc
(@val as INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN
@val + 10
END
go
select myfunc(1) --fails
go
select dbo.myfunc(1) --succeeds
所以尝试:
select(func.dbo.myfunc(x.c.mycolumn).label("my_column_plus_10"))
每:
To call functions which are present in dot-separated packages, specify
them in the same manner:
>>> print(func.stats.yield_curve(5, 10))
stats.yield_curve(:yield_curve_1, :yield_curve_2)
sqlalchemy.sql.expression.func
这是一个 schema-qualified UDF 而不是“dot-separated 包”,但生成的 SQL 看起来是一样的。
假设我已经定义了一个 SQL 服务器函数 myfunc
它将一个整数作为输入并且 returns 一个这样的整数
CREATE FUNCTION myfunc
(@val as INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN
@val + 10
END
有没有办法在 SQLAlchemy 中调用这个函数? 我知道我不能像下面那样做,因为它不是公认的内置函数函数名称 ('myfunc' is not a recognized built-in function name.
)
select(func.myfunc(x.c.mycolumn).label("my_column_plus_10"))
Scalar-valued UDF 必须在 SQL 服务器中使用 schema-qualified 名称调用。
CREATE FUNCTION myfunc
(@val as INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN
@val + 10
END
go
select myfunc(1) --fails
go
select dbo.myfunc(1) --succeeds
所以尝试:
select(func.dbo.myfunc(x.c.mycolumn).label("my_column_plus_10"))
每:
To call functions which are present in dot-separated packages, specify them in the same manner:
>>> print(func.stats.yield_curve(5, 10))
stats.yield_curve(:yield_curve_1, :yield_curve_2)
sqlalchemy.sql.expression.func
这是一个 schema-qualified UDF 而不是“dot-separated 包”,但生成的 SQL 看起来是一样的。