Re: 問題ID : 19925
arashi1977
居住地: 広島
投稿数: 1715
引用:ORACLEの仕様の話をするときにPostgreSQLでできるかどうかで判断されても…
私のところで確認したらこうなりました。
なお、TRIM()は1文字の指定のみですが、LTRIM()/RTRIM()は文字列指定が可能です。以下のドキュメントの構文でも「set」が明記されています。
https://docs.oracle.com/cd/E16338_01/server.112/b56299/functions160.htm#sthref1482
ということで
引用:OSS-DBではPostgreSQLでもMySQLでもいいと思いますが、Oracleの学習のためにはOracle実行環境を用意することをおすすめします。
TRIM関数は、引数で指定された文字列の前後にある削除文字を取り除いた文字列を返します。(中略)
削除文字には任意の1文字を指定できますが、文字列は指定できません。
とありますが、こちらを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では文字列指定できないようでしたらすみません。
投稿ツリー
-
問題ID : 19925
(momo0727, 2020-7-31 12:44)
-
Re: 問題ID : 19925
(arashi1977, 2020-7-31 15:04)
- Re: 問題ID : 19925 (arashi1977, 2020-7-31 15:05)
-
Re: 問題ID : 19925
(momo0727, 2020-8-5 10:16)
- Re: 問題ID : 19925 (arashi1977, 2020-8-5 11:38)
- Re: 問題ID : 19925 (momo0727, 2020-8-7 12:00)
-
Re: 問題ID : 19925
(arashi1977, 2020-7-31 15:04)