ORA-06553: PLS-306: 调用 ‘OGC_X’ 时参数个数或类型错误
对于这个错误开始我也觉得挺纳闷,在他的Form中根本没有调用什么OGC_X的方法,只能一步一步分析看看到底发生什么事情了。
首先想到利用Help –> 的功能来查看真正执行的SQL语句是什么呢?
1 2 3 4 5 6 |
SELECT REF(x), ...... x.last_updated_by, x.last_update_date, x.last_update_login FROM xhu_po_quote_headers_2213_v x |
可是这句SQL看上去和OGC_X没有什么关系啊?难不成和x有关系,看似没什么道理可言?
那就利用数据字典来看看吧,到底OGC_X是何物,总是和这个SQL语句过意不去呢?
1 2 3 4 5 6 7 8 |
SQL> SELECT owner, object_name, object_type 2 FROM dba_objects 3 WHERE object_name = 'OGC_X'; OWNER OBJECT_NAME OBJECT_TYPE --------- -------------- -------------- PUBLIC OGC_X SYNONYM MDSYS OGC_X FUNCTION |
系统中果然存在OGC_X名称的FUNCTION,这样从上面的ORA-06553错误来看,果然这个SQL语句执行了这个FUNCTION,但是它为什么会被执行呢?再来看看OGC_X的定义 。
1 2 3 4 5 |
SQL> desc OGC_X; Parameter Type Mode Default? --------- -------------- ---- -------- (RESULT) NUMBER P MDSYS.ST_POINT IN |
再看看这个SQL语句, 难不成真的和x有关系?我就试一把将x改为其它的别名,就叫poh,执行修改后的SQL,果然没有错误,原来真的和别名x有关系,
那即使是别名x搞的鬼,那OGC_X和x会有关系吗,它们怎么就联系在一起了?想了一下,同义词可以将它们连在一起,说不定是这个原因。
1 2 3 4 5 6 7 8 |
SQL> SELECT owner, synonym_name, table_owner, table_name 2 FROM dba_synonyms 3 WHERE table_name = 'OGC_X'; OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME ---------- --------------- ------------- ------------- PUBLIC OGC_X MDSYS OGC_X PUBLIC X MDSYS OGC_X |
一看同义词的查询结果,答案果然找出来了,原来OGC_X创建了一个同义词名称为x,所以上面SQL中REF(x)中就被认为调用了OGC_X这个FUNCTION,而又没有提供给它调用的参数,所以报出调用的参数个数或类型错误。
这个问题的关键部分已经解决,可是进一步想,既然x有同义词,会不会也有名为y的同义词呢,来看看?
1 2 3 4 5 6 7 |
SQL> SELECT owner, synonym_name, table_owner, table_name 2 FROM dba_synonyms 3 WHERE synonym_name = 'Y' ; OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME --------- --------------- -------------- ------------ PUBLIC Y MDSYS OGC_Y |
系统中真有这样的同义词,Oracle为什么要这样呢,google一把吧,找到了Oracle官方的说法:
Oracle Spatial is conformant with Open Geospatial Consortium (OGC) Simple Features Specification 1.1.1 (Document 99-049), starting with Oracle Database release 10g(version 10.1.0.4). Conformance with the SQL92 with Geometry Types Implementation means that Oracle Spatial supports all the types, functions, and language constructs detailed in Section 3.2 of the specification. Synonyms are created to match all OGC function names except for X(p Point) and Y(p Point). For these functions, you must use the names OGC_X and OGC_Y instead of just X and Y.
上面的疑问都已经有了答案,可是Form生成的SQL语句怎么又多了一个别名X呢?答案就在Form数据块的设置上面,数据库的别名被设置为x了,要彻底解决这个只要去掉别名或者命名为其它不冲突的别名即可。
从这个问题可以看到,一些看似互不相关的问题实质是有其内在的联系,在程序的开发中没有妖怪的存在;同时一个好的命名会减少很多不必要的错误发生。
文章转自:http://oracleseeker.com/2009/08/15/raise_ora-06553_ogc_x_error_in_oracle_form/
–
相关推荐
《Python库ogc_plugins_runner-1.0.5-py3-none-any.whl深度解析》 在Python的世界里,库是构建复杂应用的基础模块,它们提供了丰富的功能,使得开发者能够高效地实现各种任务。今天我们要关注的是名为"ogc_plugins_...
GDAL库提供了丰富的功能,包括读取和写入各种地理空间数据格式(如GeoTIFF、Shapefile等),处理栅格和矢量数据,执行地理变换,以及支持OGC标准如WMS和WFS。开发者可以利用GDAL进行地图制作、遥感数据分析、GIS应用...
Pygeos是基于GEOS(Geometry Engine Open Source)库的,而GEOS是开源的C++库,实现了OGC(开放地理空间联盟)简单特征规范。Pygeos通过提供与NumPy数组兼容的接口,使得用户能够充分利用Python的生态系统,同时享受...
github.com/wanghao9610/OV-DINO模型
6. **数据访问**:GDAL提供了一种抽象层,可以透明地访问网络上的地理空间数据,如通过OGC的WCS和WMS服务获取数据。 7. **栅格处理**:包括图像的打开、读取、写入、重采样、色彩校正、镶嵌、裁剪、滤波等功能。 8. ...
Spatialite遵循开放地理空间联盟(OGC)的标准,如Simple Features Access规范,确保了与其他GIS系统的兼容性。 Spatialite_GUI作为其图形化界面,提供了一种直观易用的方式,让用户无需编写复杂的SQL语句就能操作...
它实现了OGC(开放地理空间联盟)的Simple Features Access规范,可以读取和写入多种GIS文件格式,如Shapefile、GPKG、GeoJSON等。Fiona与GDAL/OGR库紧密集成,提供了一种更Pythonic的方式来操作地理数据,是地理...
OGC - ITIL v3 - Service Lifecycle - Introduction ITIL
OGC - ITIL v3 - Service Design
本资料包“ogc-standards.zip”深入探讨了OGC的核心标准,特别是WMS(Web Map Service)和WMTS(Web Map Tile Service),以及相关的空间SQL模型,对于GIS专业人员和爱好者来说,这些都是不可或缺的知识。...
ITIL(信息技术基础设施库)是IT服务管理领域的一套国际最佳实践框架,由英国政府标准机构OGC(Office of Government Commerce)发起,并在全球范围内广泛采用。"OGC - ITIL V3 - The Official Introduction to ITIL...
在Java中实现这一过程时,需要注意兼容不同版本的OGC规范,处理可能出现的错误,并确保性能优化,特别是对于大量并发请求。此外,安全措施也很重要,避免未经授权的访问和潜在的SQL注入攻击。 总之,用Java和...
### OGC - ITIL v3 - Continual Service Improvement #### ITIL v3核心构成与服务改进 《OGC - ITIL v3 - Continual Service Improvement》是ITIL(Information Technology Infrastructure Library)版本3中关于...
标题和描述均提到了“OGC - ITIL v3 - Service Operation”,这表明文档主要聚焦于IT服务管理(IT Service Management, ITSM)框架中的一个重要组成部分:ITIL版本3中的服务运营(Service Operation)部分。ITIL...
CityGML是一种开放数据模型,它基于XML来实现虚拟三维城市模型的数据存储与交换,它是GML 3的一种应用模式,GML 3是由OGC和ISO TC 211制订的可扩展的国际标准,可以用于空间数据交换。CityGML目标是成为一个开放的...
City Geography Markup Language (CityGML) En-coding Standard an OGC Member approved international standard
《OGC KML 2.3》是Open Geospatial Consortium(OGC)发布的一份标准文档,旨在规范地理空间数据的表示和交换,特别是针对谷歌地球(Google Earth)的KML(Keyhole Markup Language)格式。KML是一种XML方言,用于...
根据提供的文件信息“OGC_Common_Glossary_English_v06_2008”,本文将对其中涉及的关键术语及其定义进行详细解读,并结合实际应用场景进行深入剖析。 ### 一、重要术语与定义 #### 1. **接受标准(Acceptance ...