【问题标题】:PLS-00306: wrong number or types of arguments tips on function with "variable" number of argumentsPLS-00306:具有“可变”参数数量的函数提示错误数量或类型的参数
【发布时间】:2017-09-19 19:17:54
【问题描述】:

该函数来自外部库,我无法访问它的源代码,但这里是它的文档:http://desktop.arcgis.com/en/arcmap/10.4/manage-data/using-sql-with-gdbs/st-transform.htm

它声称有两个函数但具有相同的签名,但 Oracle 在标题中给了我错误(我错误地假设)并且不允许我编译该函数。

有没有办法可以跳过这个错误并让它在下面编译我的函数?因为我假设在执行时不会出现此错误。

还是我真的错过了什么?

功能:

create or replace function transform_to_utm_sul_x(fuso varchar,shape st_geometry)
RETURN number 
AUTHID CURRENT_USER
AS
    utm_x  number;
    srid INTEGER;
begin
    SELECT
        wkid_sul
    INTO
        srid
    FROM
        limt_fusos_utm
    WHERE
        zone = fuso and srid is not null and srid <> '';
    utm_x := st_x(st_transform(shape, srid));
    return utm_x;
end transform_to_utm_sul_x;

堆栈跟踪:

错误(16,47):PLS-00306:调用时参数提示的数量或类型错误 'ST_TRANSFORM_F'

【问题讨论】:

  • 能否提供错误信息和错误行?
  • @TedFilippidis 编辑了它
  • 我唯一能做的就是你在 ST_TRANSFORM_F 中提供了错误的数据类型,你能提供签名吗?
  • 数据类型 st_geometry 是否在您尝试编译此函数的架构中定义?
  • @PatrickBacon 这是问题之一,谢谢

标签: sql oracle oracle11g gis


【解决方案1】:

你调用 st_transform 的形状是 st_geometry,srid 是 INTEGER。 Oracle 说 ST_TRANSFORM_F 没有与类型(st_geometry、integer)匹配的定义。或者更准确地说,Oracle 无法将具有实际类型(st_geometry、integer)的参数转换为任何现有的 ST_TRANSFORM_F 定义。

快速演示。

SQL> create or replace function ST_TRANSFORM_F(i in integer) return integer
  2  as begin return 1; end;
  3  /

Function created.

SQL> create or replace function f(p in sys.odcinumberlist) return integer as
  2  begin return ST_TRANSFORM_F(p); end;
  3  /

Warning: Function created with compilation errors.

SQL> sho err
Errors for FUNCTION F:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/7      PL/SQL: Statement ignored
2/14     PLS-00306: wrong number or types of arguments in call to
         'ST_TRANSFORM_F'

SQL> create or replace function f(p in number) return integer as
  2  begin return ST_TRANSFORM_F(p); end;
  3  /

Function created.

数字可以转换为整数,但 sys.odcinumberlist,例如,不能。

【讨论】:

  • 这是问题之一,另一个是它是 SDE.st_geometry
猜你喜欢
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多