在sql中解析返回的查询

时间:2016-01-05 17:51:14

标签: sql oracle oracle-sqldeveloper oracle-apex

我正在尝试在oracle application express中执行此代码。我一直收到解析返回的查询结果。

  

解析返回的查询结果在“ORA-06550:第11行第19行:   ORA-00933:SQL命令未正确结束“。如果您相信您的查询   在语法上是正确的,检查“使用通用列名称”   下面的复选框继续而不解析。

我无法弄清楚它的含义以及如何纠正这个错误。任何人都可以帮助我或给我一些建议吗?请。

IF v('P2_POSTCODE_SEARCH') IS NOT NULL THEN
   GEOCODE_GM_XML (l_postcode, l_lat, l_lng);
l_query := l_query||' '||' 
TO_CHAR(
       SDO_GEOM.SDO_DISTANCE
       (SDO_GEOMETRY(2001, -- SDO_GTYPE
                                 8307, -- SDO_SRID
                                 SDO_POINT_TYPE('||l_lng||', --X longitude
                                                '||l_lat||', --Y latitude
                                                null),     --Z 3D only
                                 null, -- SDO_ELEM_INFO_ARRAY
                                 null), -- SDO_ORDINATE_ARRAY 
        location, 
        0.005, 
        ''unit=mile''),''9g999'') distance';

else

l_query := l_query||' '||' NULL DISTANCE';
END IF; 

1 个答案:

答案 0 :(得分:1)

以下是您脚本的精简版。部分故障排除是删除我们应该做的所有其他事情,如注释代码和检查空值。下面的代码只是一个测试用例,可以在Oracle 11g上编译和运行。 将其作为脚本运行,并为l_lng和l_lat提供一些值。检查输出,测试并重复。

#include <iostream>
#include <fstream>

int main()
{
   std::ofstream out("test.txt");

   // Get the rdbuf of clog.
   // We need it to reset the value before exiting.
   auto old_rdbuf = std::clog.rdbuf();

   // Set the rdbuf of clog.
   std::clog.rdbuf(out.rdbuf());

   // Write to clog.
   // The output should go to test.txt.
   std::clog << "Test, Test, Test.\n";

   // Reset the rdbuf of clog.
   std::clog.rdbuf(old_rdbuf);

   return 0;
}