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

SQLDeveloperの列値の非表示の二重引用符を削除する方法

    データベーステーブルの列の値には二重引用符がありません。

    結果グリッドからデータをコピーすると、SQLDeveloperはコピー操作の一部としてデータを追加します。 (おそらくそうしないように頼む方法はありますが、すぐにはわかりません。)取得する最初の値の末尾に改行文字があるため、これを行っています。私がそうすれば、あなたが見ているものを複製することができます:

    select 'Testdata' || chr(10) from dual
    union all
    select 'Testdata' from dual;
    

    スクリプトとして実行すると、スクリプト出力ウィンドウに次のように表示されます。

    'TESTDATA
    ---------
    Testdata
    Testdata
    

    ここで改行は失われ、そこからコピーアンドペーストしても改行は保持されません。ステートメントとして実行すると、クエリ結果ウィンドウのデータは同じように見えます:

    しかし、そのデータをグリッドからコピーして貼り付けると(Notepad ++だけでなく、どこにでも)、次のようにも表示されます。

    "Testdata
    "
    Testdata
    

    ...したがって、改行は保持され、二重引用符で囲まれているため、貼り付けられたものはすべて(Excelを対象としていると思います)、改行文字を含む単一の値であると理解されます。

    問題は、それらが実際には明確ではないということです。 1つには改行があり、もう1つには改行がありません。

    それを無視して同じものとして扱いたい場合は、末尾の改行を削除できます:

    select distinct rtrim(col, chr(10))
    from your_table;
    

    同じサンプルデータを使用したデモ:

    -- CTE for sample data
    with your_table (col) as (
      select 'Testdata' || chr(10) from dual
      union all
      select 'Testdata' from dual
    )
    select col
    from your_table;
    
    COL      
    ---------
    Testdata
    Testdata
    
    -- CTE for sample data
    with your_table (col) as (
      select 'Testdata' || chr(10) from dual
      union all
      select 'Testdata' from dual
    )
    select distinct rtrim(col, chr(10)) as col
    from your_table;
    
    COL      
    ---------
    Testdata
    


    1. SQLIN句1000項目の制限

    2. sqlalchemy:クエリ結果の順序が予期しない

    3. WCF と Sync Framework を使用して HTTP 経由で SQL Server 2008 データベースを同期する

    4. dictのPythonリストをjsonのPostgresql配列に変換します