sql >> データベース >  >> RDS >> Oracle

Oracle:カーソルがカーソル内にある場合(カーソル式を使用)、Selectdistinctは機能しません

    以下のような明確な出力が必要だと思います

    <?xml version="1.0"?>
    <ROWSET>
     <ROW>
      <CONTACTS>
       <CONTACTS_ROW>
        <CONTACT_NAME>ALBERT EINSTEIN</CONTACT_NAME>
        <INVOICE_NUMBER>123456</INVOICE_NUMBER>
        <INVOICE_AMOUNT>10000</INVOICE_AMOUNT>
        <INVOICE_CURRENCY>EUR</INVOICE_CURRENCY>
       </CONTACTS_ROW>
      </CONTACTS>
     </ROW>
    </ROWSET>
    

    このため、2番目のカーソルは必要ありません。以下のように達成できます

    select dbms_xmlgen.getxml('
    select 
    cursor (
      select 
        distinct 
        ''ALBERT EINSTEIN'' CONTACT_NAME 
        , 123456 INVOICE_NUMBER, 10000 INVOICE_AMOUNT, ''EUR'' INVOICE_CURRENCY 
      from 
      ALL_VIEWS
      where view_name IN ( ''ALL_INDEXES'', ''ALL_TABLES'')
      ) AS CONTACTS
      from dual 
     ') from dual
    ;
    

    distint以降 この機会に違います。したがって、サブカーソルは必要ありません。ここでdistinct サブクエリ内のすべてのレコードを自分で削除します。



    1. SQL ServerのTRIM、LTRIM、およびRTRIM関数

    2. AJAXを使用してWebページをリロードせずにWebページを更新するにはどうすればよいですか?

    3. トランザクションログファットのトリミング

    4. Magento:注文ごとにCSVファイルを自動的に作成します