"语法接受参数的函数吗?-6ren"> "语法接受参数的函数吗?-我有一个 select 语句工作(没有语法错误并返回所需的结果),但是当我尝试在 View 中使用相同的 select 语句时出现错误。我认为这与命名参数的“=>”有关。 select SDO_UTI-6ren">
gpt4 book ai didi

oracle - 我可以在 View 中使用使用 "=>"语法接受参数的函数吗?

转载 作者:行者123 更新时间:2023-12-05 01:34:32 25 4
gpt4 key购买 nike

我有一个 select 语句工作(没有语法错误并返回所需的结果),但是当我尝试在 View 中使用相同的 select 语句时出现错误。我认为这与命名参数的“=>”有关。

select SDO_UTIL.AFFINETRANSFORMS(
geometry => STRTS.GEOMETRY,
translation => 'FALSE', tx => 0.0, ty => 0.0, tz => 0.0,
scaling => 'TRUE', psc1 =>
MDSYS.SDO_GEOMETRY( 3001, NULL, SDO_POINT_TYPE( 0, 0, 0 ), NULL, NULL),
sx => 0.8, sy => 0.8, sz => 0.8,
rotation => 'FALSE', p1 => NULL,
line1 => NULL, angle => 10.0, dir => 2,
shearing => 'FALSE', shxy => 0.0,
shyx => 0.0, shxz => 0.0, shzx => 0.0, shyz => 0.0, shzy => 0.0,
reflection => 'FALSE', pref => NULL, lineR => NULL, dirR => 0,
planeR => 'FALSE', n => NULL, bigD => NULL ) AS GEOMETRY
FROM (
SELECT
MDSYS.SDO_GEOMETRY(3002, NULL, NULL,
SDO_ELEM_INFO_ARRAY(1, 2, 1),
SDO_ORDINATE_ARRAY(-90, 30, 0, -90, 30, 0))
as GEOMETRY
FROM DUAL ) STRTS

我将语句简化为仅使用 dual 以使其更易于重现。我有一个带有线性几何图形的表格,我将使用它来代替“SELECT ... FROM DUAL”,以及一种将点从线上拉出以用于 psc1 的方法。

我在使用 sqldeveloper 的测试语法时得到的错误是
Error(s) parsing SQL: Unexpected token at 45 near =>.

第一个“=>”是字符串中的 45 个字符,所以我认为在创建 View 中使用它是无效的。

我很确定我可以通过创建一个不使用这个“=>”语法的函数来解决这个问题,但希望有一种方法可以直接从创建 View 调用这个 oracle 函数。

编辑:所以看来 sqldeveloper/sqlplus 支持命名参数之类的东西。我在命名参数 (/* named_pa​​ram =>*/) 周围添加了注释以停止使用命名参数语法。现在它只是一个“错误的参数数量或类型”错误。不幸的是,我按照 Oracle 在线文档(来自 http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_util.htm#BJEGCCDF)中显示的确切顺序放置了所有参数。所以我想这变成了如何为我的函数参数找到正确顺序的问题。

最佳答案

是的,您可以,但仅限于 Oracle 11G。在此之前,任何 SQL 语句(包括 View 定义)中都只允许使用位置符号。

关于oracle - 我可以在 View 中使用使用 "=>"语法接受参数的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com