1

چگونه برنامه‌ای بنویسیم که در یک رشته مقادیر مورد نظر را جدا کرده و سطر به سطر نمایش دهد؟

تعداد بازدید
74
زمان مطالعه
2 دقیقه
بـروز رسانـی
1402/06/31
پرینت مقاله
اشتراک گذاری

میخواهیم برنامه‌ای داشته باشیم که مقادیر ‘aaa,bb,ccc,rrrr’ را بر مبنای کاراکتر ‘,’  از هم جدا کرده و خروجی زیر را تولید کنید

aaa

bb

ccc

rrrr

برای انجام این کار باید از برنامه زیر استفاده کنیم

create or replace package word_find is

type type_return is table of varchar2(1000);
function instr_word(p_input_str clob, p_seperate_char char)
return type_return
pipelined;

end word_find;

/***********************/

create or replace package body word_find is
function instr_word(p_input_str clob, p_seperate_char char)
return type_return
pipelined is
v_str clob := p_input_str;
v_comma_position number;
v_substr clob;
v_position_start_for_substr number := 1;
v_return type_return := type_return();

begin

loop
v_comma_position := instr(v_str,
p_seperate_char,
v_position_start_for_substr,
1);
exit when v_comma_position = 0;

v_substr := substr(v_str,
v_position_start_for_substr,
v_comma_position –
v_position_start_for_substr);
v_position_start_for_substr := v_comma_position + 1;
dbms_output.put_line(v_substr);
v_return.extend();
v_return(v_return.last) := v_substr;
pipe row(to_char(v_return(v_return.last)));

end loop;
v_substr := substr(v_str,
– (length(v_str) –
instr(v_str, p_seperate_char, -1, 1)));

dbms_output.put_line(v_substr);
v_return.extend();
v_return(v_return.last) := v_substr;
pipe row(to_char(v_return(v_return.last)));
dbms_output.put_line(‘/****************/’);

end;
end word_find;

در برنامه فوق که یک پکیج است که در داخل آن از یک Table Function استفاده شده است در پارامتر p_input_str مقدار رشته‌ای مورد نظر را ارسال کرده و در پارامتر p_seperate_char جدا کننده‌ای که در مقدار ورودی وجود دارد را معرفی می‌کنیم، نحوه فراخوانی برنامه فوق به شکل ذیل می‌باشد

select * from table(word_find.instr_word(‘aaa,bb,ccc,rrrr’ , ‘,’));

دیدگاهتان را بنویسید

آیا این مقاله مفید بود؟

از ۱ تا ۵ چه امتیازی می‌دهید؟

میانگین امتیاز از رای

اولین نفر باشید که رای میدهد!

تماس با پشتیبانی
فرداوراکل
این فیلد برای اعتبار سنجی است و باید بدون تغییر باقی بماند .