SQLコマンドに '/'を加えたテキストファイルがありますが、/ ** /とスペースのようなコメントも含まれています。 すべてのコマンドを実行できるようにファイルを解析する必要がありますが、コメントを無視する必要があります。 私はこの小さなコードをやったが、何らかの理由でそれがテキストファイルに存在する行の半分も私を与えるdoesntの:正規表現を使用してテキストファイルからSQLコマンドを解析するC#
public string[] Parser(string caminho)
{
using (StreamReader sr = new StreamReader(caminho, Encoding.Default))
{
string text = sr.ReadToEnd();
string[] lines = text.Split('/');
return lines;
}
}
は、正規表現を使用してこれをaproachためにとにかくありますか?すべてのヘルプはhigly aprecciatedだろう
https://drive.google.com/file/d/0B1xc1ft-s78NTHdZdlpTTWlfLVE/view?usp=sharing
:ここ
はコマンドで.txtファイルへのリンクです。
コメントをUPDATE APPLCONFIG SET GGDSC='3.5.96' WHERE GGCOD='APP_NAME'
/
UPDATE APPLCONFIG SET GGDSC='3.5.96' WHERE GGCOD='NEG_NAME'
/
UPDATE APPLCONFIG SET GGDSC='3.5.96' WHERE GGCOD='DAT_NAME'
/
ALTER TABLE PROPOSTAS ADD (COEFGERAL_PLT NUMBER(3,6) DEFAULT 0)
/
ALTER TABLE ORC
ADD MercadoInt VARCHAR2(1)
ADD Coef_KrMo NUMBER(20,10)
ADD Coef_KrMt NUMBER(20,10)
ADD Coef_KrEq NUMBER(20,10)
ADD Coef_KrSb NUMBER(20,10)
ADD Coef_KrGb NUMBER(20,10)
ADD Coef_MDEmp NUMBER(20,10)
ADD Coef_MDLoc NUMBER(20,10)
ADD Abrv_MDLoc VARCHAR2(10)
ADD Dsc_MDLoc VARCHAR2(50)
ADD Arred_MDLoc VARCHAR2(1)
ADD Arred_NDecs NUMBER(1)
/
UPDATE Orc set MercadoInt='N', Coef_KrMo=1, Coef_KrMt=1, Coef_KrEq=1, Coef_KrSb=1, Coef_KrGb=1, Coef_MDEmp=1, Coef_MDLoc=1, Abrv_MDLoc='', Dsc_MDLoc='', Arred_MDLoc='N', Arred_NDecs=0 WHERE MercadoInt IS NULL
/
DROP VIEW VW_EXPSUBEEXCELL
/
、他の部分:
/
---------------------------------------------------------------------
UPDATE CDPREPORTSQL
SET COMANDOSQL_FROM =
'SELECT DESCONTO,EMPCOD,EMPDSC,LINVER,NOMESISTEMA,OBS,ORCCOD,ORCVER,PEDCOD,PEDDSC,
ROUND(PRCUNIT*#CAMBIO#,5) PRCUNIT,
ROUND(PRCUNITSEMDESC*#CAMBIO#,5) PRCUNITSEMDESC,
PROPCHECK,QTDGLOB,QTDPROP,REFCOD,REFDSC,EMPCODVER, COEFGERAL_PLT FROM #OWNER#.VW_PROPOSTAS',
COMANDOSQL_WHERE =
'WHERE ORCCOD=#ORCCOD# AND ORCVER=#ORCVER# AND NOMESISTEMA=#NOMESISTEMA# AND PEDCOD=#MYCOD#'
WHERE REPID = 'CDP0000057'
/
---------------------------------------------------------------------
DROP VIEW VW_PROPSRECEPSOUTROS
/
CREATE OR REPLACE FORCE VIEW VW_PROPSRECEPSOUTROS (orccod,
orcver,
nomesistema,
pedcod,
peddsc,
empcod,
empcodver,
empdsc,
pedtprec,
linver,
totproposta,
totdesconto,
totpropsel,
totmin
)
AS
SELECT b.orccod, b.orcver, b.nomesistema, b.pedcod, b.peddsc, p.empcod,
p.empcodver, h.empdsc, b.pedtprec, l.linver,
SUM ( ((l.qtdorc * pp.indfis) * ( (p.prcunit * (1 + p.deconto))) * (1 + p.coefgeral_plt)
* (CASE
WHEN r.tprec = '1'
THEN o.coef_krmo
WHEN r.tprec = '2'
THEN o.coef_krmt
WHEN r.tprec = '3'
THEN o.coef_kreq
WHEN r.tprec = '4'
THEN o.coef_krsb
ELSE 1
END
)
)
) totproposta,
SUM((l.qtdorc * pp.indfis * p.prcunit) - ((l.qtdorc * pp.indfis) * ( (p.prcunit * (1 + p.deconto))) * (1 + p.coefgeral_plt)
* (CASE
WHEN r.tprec = '1'
THEN o.coef_krmo
WHEN r.tprec = '2'
THEN o.coef_krmt
WHEN r.tprec = '3'
THEN o.coef_kreq
WHEN r.tprec = '4'
THEN o.coef_krsb
ELSE 1
END
)
)
) * -1 as TOTDESCONTO,
/* SUM
( (CASE
WHEN (NVL (p.deconto, 0) + NVL(p.coefgeral_plt,0)) <> 0
THEN (l.qtdorc * pp.indfis) * ((
(p.prcunit * (case when p.deconto <> 0 then p.deconto else 1 end)) *
case when p.coefgeral_plt <> 0 then p.coefgeral_plt else 0 end)
* (CASE
WHEN r.tprec = '1'
THEN o.coef_krmo
WHEN r.tprec = '2'
THEN o.coef_krmt
WHEN r.tprec = '3'
THEN o.coef_kreq
WHEN r.tprec = '4'
THEN o.coef_krsb
ELSE 1
END
)
)
ELSE 0
END
)
* (-1)
) totdesconto_old,*/
SUM
((CASE
WHEN p.empsel = 1
THEN ((l.qtdorc * pp.indfis) * ((p.prcunit * (1 + p.deconto)) * (1 + p.coefgeral_plt))
* (CASE
WHEN r.tprec = '1'
THEN o.coef_krmo
WHEN r.tprec = '2'
THEN o.coef_krmt
WHEN r.tprec = '3'
THEN o.coef_kreq
WHEN r.tprec = '4'
THEN o.coef_krsb
ELSE 1
END
)
)
ELSE 0
END
)
) propsel,
NVL (SUM ( (l.qtdorc * pp.indfis) * (SELECT MIN ((pp.prcunit * (1 + pp.deconto)) * (1 + pp.coefgeral_plt))
FROM propostas pp
WHERE p.orccod = pp.orccod
AND p.orcver = pp.orcver
AND p.nomesistema = pp.nomesistema
AND p.pedcod = pp.pedcod
AND p.recurcod = pp.recurcod
AND pp.prcunit > 0
AND p.prcunit = 0
AND NVL (p.obs, '@') = '@')
),
0
)
+ NVL (SUM ( (l.qtdorc * pp.indfis) * (((p.prcunit * (1 + p.deconto)) * (1+p.coefgeral_plt))
* (CASE
WHEN r.tprec = '1'
THEN o.coef_krmo
WHEN r.tprec = '2'
THEN o.coef_krmt
WHEN r.tprec = '3'
THEN o.coef_kreq
WHEN r.tprec = '4'
THEN o.coef_krsb
ELSE 1
END
)
)
),
0
) totmin
FROM pedproposta b,
propostas p,
empresash h,
recursos r,
prcficha pp,
articlin l,
orc o
WHERE o.orccod = b.orccod
AND o.orcver = b.orcver
AND o.nomesistema = b.nomesistema
AND b.orccod = p.orccod
AND b.orcver = p.orcver
AND b.nomesistema = p.nomesistema
AND b.pedcod = p.pedcod
AND p.empcod = h.empcod
AND p.orccod = r.orccod
AND p.orcver = r.orcver
AND p.nomesistema = r.nomesistema
AND p.recurcod = r.recurcod
AND p.recver = r.recver
AND p.rgmcod = r.rgmcod
AND p.orccod = pp.orccod
AND p.orcver = pp.orcver
AND p.nomesistema = pp.nomesistema
AND p.recurcod = pp.recurcod
AND p.recver = pp.recver
AND p.rgmcod = pp.rgmcod
AND pp.orccod = l.orccod
AND pp.orcver = l.orcver
AND pp.nomesistema = l.nomesistema
AND pp.prccod = l.prccod
AND pp.prcver = l.prcver
and b.pedtprec = '2'
GROUP BY b.orccod,
b.orcver,
b.nomesistema,
p.empcod,
p.empcodver,
h.empdsc,
b.pedtprec,
l.linver,
b.pedcod,
b.peddsc
/
私は、コマンドを取得し、他のすべてを無視する必要があります。ここ
は、ファイルの例です。ありがとうございます。
テキストファイルの例を示し、あなたの元の質問を編集することができ、の例を表示するには、より簡単だっただろうと、あなたは、ファイルへのリンクを投稿してはなりませんファイルとその元の投稿の区切り記号です。また、予期しない出力がどのように表示されるかを説明したり表示したりします。 string.Split()関数は、分割しているものが分かっている場合には非常に使いやすいです。あなたは複数のデリミタを指定することができます。btw – MethodMan
ファイルが大きすぎてここに投稿できないため、リンクを投稿しました。しかし私はあなたが示唆したように編集するが、私はあなたにリンクplsを確認するよう依頼する。区切り記号は私が使用する「/」です。 @MethodMan –
リンクが安全であることを知っている今、悪意のあるコンテンツなどがあるので、私はリンクをチェックしません。ただ2つの異なる区切り文字を示す単一の行を投稿してください。 – MethodMan