トップページに戻る
次のPL/SQLの問題へ
PL/SQL1 正規表現の[0-9]+を模倣
SQLパズル
[0-9]+を抽出して掛け算する。
11ab7c8c9deだと、
11*7*8*9=5544を返す。
PL/SQL
declare
matchFlag boolean;
seki pls_Integer := 1;
matchStr varchar2(4000);
serchStr constant varchar2(4000):= '11ab7c8c9de';
begin
for i in 1..length(serchStr) Loop
if substr(serchStr,i,1) between '0' and '9' then
if matchFlag then
matchStr := matchStr || substr(serchStr,i,1);
else
matchFlag := true;
matchStr := substr(serchStr,i,1);
end if;
elsif matchFlag then
matchFlag := false;
seki := seki * to_number(matchStr);
end if;
end Loop;
DBMS_Output.Put_Line('掛けた結果は' || to_char(seki));
end;
/
解説
情報処理技術者試験でよく出てくるアルゴリズムだったと思います。