2012-04-09 6 views
-1

pl/sqlを使用して巨大な文字列から特定の文字列を取得する方法を知っている人がいらっしゃいますか? 私はクエリー作成の初心者です。 私は関数を使用したくないです:select substr(*、*、*)から* cuzの入力は可変ですので、この問題に助けてくれる人は です。それを引き起こす。stringから特定の単語を取得するORACLE

おかげ&に関して、

+2

この機能を使用する前に、INSTR .Readの代わりに神託REGEXP_INSTRに正規表現については、Oracleのドキュメントを行くにsubstrを使用するSELECTを使用する。あなたは単にそれを呼び出すことができます:v_result = substr(p_input、1,2); 実際に何を達成しようとしているかに応じて、[instr](http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions068.htm)、[regexp_substr](http: //docs.oracle.com/cd/B19306_01/server.102/b14200/functions131.htm)および[regexp_instr](http://docs.oracle.com/cd/B13789_01/server.101/b10759/functions114.htm)を参照してください。 )。 – Viehzeug

+3

このような質問をするときには、いくつかのサンプル入力といくつかの優れた出力を与えるべきです。私たちのお手伝いをしてください! – APC

+0

pl/sqlの後かsqlだけの後ですか?いくつかの文脈があなたを助けるでしょう。 –

答えて

3

あなたが大きな文字列の内部に特定の文字列を探しているように聞こえます。もしそうなら、あなたはおそらく探している機能は、INSTRです:

http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm

+0

サードパーティではなくOracleのドキュメントにリンクする方がよいでしょう。http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm –

+0

@BurhanAliありがとうございます。リンクが更新されました。 –

2

限り、私の理解あなたの質問にあなたは、これはあなたができる問題であればspecific wordは、string or not内に存在するかどうかcheckにしたいです以下の解決策を見つけてください。我々は文字列MY NAME IS GAURAV SONIと、この単語でWord GAURAVを検索している上記ブロックで

DECLARE 
v_string VARCHAR2(200):='MY NAME IS GAURAV SONI'; 
v_check PLS_INTEGER; 
BEGIN 

v_check:=INSTR(v_string,'GAURAV'); --this is case sensitive 

IF v_check >0 THEN 
dbms_output.put_line('Word exists'); 
END IF; 

END; 

12場所に存在します。

gauravを入力すると、v_checkの値はzeroになります。

あなたがCase insensitiveを探しているされている場合は、あなたが必要としないPL/SQLでREGEXP_INSTR

Worked out example in SQL Fiddle

関連する問題