前提・実現したいこと
ファイルsamplefile1.txtに
4+8 -6+3 6*2 10/4 10%3
という5つの数式が記述されています。
この数式を変数shiki、その解を変数kaiとします。
そしてファイルsamplefile2.txtに『shiki=kai』と出力したいです。
例えば今回だと
4+8=12 -6+3=-3 6*2=12 10/4=2.5 10%3=1
となります。
samplefile1.txtの数式は全て読み込みが完了しましたが、書き出しをする際、どのように計算が行われる処理を記述すれば良いかわかりません。
方法としては
①shikiの計算対象になる数字をSUBSTR関数を使い切り取る。
②①で切り取った数字をそれぞれ変数に置き換える(4+8だと変数hidari=4、変数migi=8)
③if文を使い
もしshiki内に'+'が含まれていた場合『hidari+migi=kai』
もしshiki内に'-'が含まれていた場合『hidari-migi=kai』
・
・
・
④samplefile2.txtに出力
という流れを想定しておりますが、SUBSTR関数を使いshikiから数字を2切り取る方法がわからず、悩んでおります。
もしよろしければ、アドバイスを頂けたら幸いです。
よろしくお願い致します。
試したこと
読み込みをしたプロシージャになります。
set serveroutput on --読み込みプロシージャの作成 create or replace procedure yomikomi is v_filename varchar2(200) := 'samplefile1.txt'; file_hand utl_file.file_type; --実行部 begin file_hand := utl_file.fopen('UTL_DATA',v_filename,'r'); loop begin --読み込み utl_file.get_line(file_hand,shiki); dbms_output.put_line(shiki); exception when no_data_found then exit; end; end loop; utl_file.fclose(file_hand); end yomikomi; / execute yomikomi
回答2件
あなたの回答
tips
プレビュー