Re: 問題ID : 19925

この質問の投稿一覧へ

なし Re: 問題ID : 19925

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-7-31 15:04
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
TRIM関数は、引数で指定された文字列の前後にある削除文字を取り除いた文字列を返します。(中略)

削除文字には任意の1文字を指定できますが、文字列は指定できません。

とありますが、こちらをPostgreSQLで実行したところ、正常に実行できました。
ORACLEの仕様の話をするときにPostgreSQLでできるかどうかで判断されても…

私のところで確認したらこうなりました。
# sqlplus pingt/oracle@XE

SQL*Plus: Release 11.2.0.2.0 Production on 金 7月 31 14:58:53 2020

Copyright (c) 1982, 2011, Oracle.  All rights reserved.



Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> select prod_name from products where lower(prod_name) like 'led%';

PROD_NAME
--------------------------------------------------
LEDライト
LED_サイクルライト
led light
ledランタン

SQL> SELECT TRIM('LED' FROM UPPER(prod_name)) FROM products WHERE LOWER(prod_name) LIKE 'led%';
SELECT TRIM('LED' FROM UPPER(prod_name)) FROM products WHERE LOWER(prod_name) LIKE 'led%'
       *
行1でエラーが発生しました。:
ORA-30001: 切捨てセットの文字は1つにする必要があります

なお、TRIM()は1文字の指定のみですが、LTRIM()/RTRIM()は文字列指定が可能です。以下のドキュメントの構文でも「set」が明記されています。
https://docs.oracle.com/cd/E16338_01/server.112/b56299/functions160.htm#sthref1482
SQL> SELECT LTRIM(UPPER(prod_name),'LED') FROM products WHERE LOWER(prod_name) LIKE 'led%';

LTRIM(UPPER(PROD_NAME),'LED')
--------------------------------------------------
ライト
_サイクルライト
 LIGHT
ランタン

ということで
引用:
Oracleの実行環境がないため、こちらで確認できないのでOracleでは文字列指定できないようでしたらすみません。
OSS-DBではPostgreSQLでもMySQLでもいいと思いますが、Oracleの学習のためにはOracle実行環境を用意することをおすすめします。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.