2017-07-12 12 views
-4

に動作しないのですか?のOracleのSQL subtringは、私はこのようなクエリを持って

+3

どのようなエラーメッセージが表示されますか? – Jens

+0

期待されるCHARが得られたCLOB – Adriano

+0

これは、com_columnがNULLでなくsubstr(com_column、1、50)である場合に、より単純に書き直すことができます。 '...' end'。 Oracleに空の文字列(つまり '' '')という概念はありません。これはNULLとして扱われます。 – Boneist

答えて

1

あなたの構文は、

SELECT CASE WHEN 'abcd' IS NULL THEN NULL 
     ELSE SUBSTR('abcd',0,50) ||'...' 
     END AS ss 
    FROM DUAL; 

を見ることができるようcom_columnがあなたのテーブルに、それが正しいデータ型(VARCHAR2CHARVARCHAR、...)のだ場合であればあなたは確認する必要があり、基本的には正しいようです。

とにかく、NUMBERデータ型の場合、Oracleは暗黙の変換を行う必要があります。

+0

com_columnはVARCHAR2なので、単純な引用符がdosentで動作する理由を知りません。 – Adriano

+0

もう一度書いてみるか、または問題を分解しようとしています(例えば、 SELECT ID、com_column FROM TABLEの働きをしてからSELECT id、com_column、SUBSTR(com_column、0,50)FROM TABLEなど...) – etsa

+0

詳細な解決方法を試しましたが、一緒に機能しません。いずれにしてもNullは感謝します。 – Adriano

関連する問題