レス
元トピ次レス
タイトル
Re: 問題ID : 19925
フォーラム
最強WEB問題集Oracle Master 12c Bronze SQL基礎
投稿ユーザ(投稿日)
(2020/7/31)
本文

-----引用(始)-----

TRIM関数は、引数で指定された文字列の前後にある削除文字を取り除いた文字列を返します。(中略)

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

とありますが、こちらをPostgreSQLで実行したところ、正常に実行できました。

-----引用(終)-----

ORACLEの仕様の話をするときにPostgreSQLでできるかどうかで判断されても…

私のところで確認したらこうなりました。
[code]
# 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つにする必要があります
[/code]

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

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

ということで

-----引用(始)-----

Oracleの実行環境がないため、こちらで確認できないのでOracleでは文字列指定できないようでしたらすみません。

-----引用(終)-----

OSS-DBではPostgreSQLでもMySQLでもいいと思いますが、Oracleの学習のためにはOracle実行環境を用意することをおすすめします。

レス一覧

元トピ次レス


Ping-tモバイルTOP

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