我正在编写一个客户端应用程序,它通过select
语句从 Oracle 数据库调用存储过程。存储过程返回一个游标。我需要为此游标返回的列定义别名,并且需要在我的select
语句中完成。
我无法对 Oracle 数据库进行任何更改。我不能写任何PLSQL。我对这个数据库唯一能做的就是查询它。
请指教。
背景:此存储过程是在应用程序框架内调用的众多过程之一。目前,所有调用都以 XML 格式返回其结果,使用以下语法进行转换:
select XMLType.createXML(package_name.storedProcName('1', '2', '3')).getClobVal() as sresult from dual;
但是,此游标包含两个具有相同名称(特别是“NAME”)的列。在 TOAD 中运行此查询时,该列会自动附加一个“_1”,但是 XMLType 会导致不合逻辑的 XML,如下所示:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<ID>1</ID>
<NAME>BRUCE WAYNE</NAME>
<NAME>BATMAN</NAME>
</ROW>
</ROWSET>
这就是为什么我必须在将列转换为 XMLType 之前为其设置别名。我希望查询输出不包含重复的列名,以便 XML 可以改为这样(没有重复的标签):
<?xml version="1.0"?>
<ROWSET>
<ROW>
<ID>1</ID>
<NAME>BRUCE WAYNE</NAME>
<OTHER_NAME>BATMAN</OTHER_NAME>
</ROW>
</ROWSET>