using System; using System.Collections.Generic; using System.Configuration; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ReplaceView { public partial class MainForm : Form { static string strServer = ConfigurationManager.AppSettings["Server"].ToString(); static string strPort = ConfigurationManager.AppSettings["Port"].ToString(); static string strName = ConfigurationManager.AppSettings["Name"].ToString(); static string strUserName = ConfigurationManager.AppSettings["UserName"].ToString(); static string strUserPwd = ConfigurationManager.AppSettings["UserPwd"].ToString(); static OracleHelper _OracleHelper = new OracleHelper(strServer, strPort, strName, strUserName, strUserPwd); public MainForm() { InitializeComponent(); } private void BtnReplace_Click(object sender, EventArgs e) { List SQLStringList = new List(); DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(@"SELECT * FROM SYS.DBA_TABLES A WHERE A.OWNER = 'HIGHWAY_EXCHANGE' AND A.TABLE_NAME LIKE 'T_SELLDATA_EXTRA_%' AND A.TABLE_NAME NOT IN ('T_SELLDATA_EXTRA_COPY')").Tables[0]; foreach (DataRow _DataRow in _DataTable.Rows) { string SQLString = string.Format(@"CREATE OR REPLACE VIEW HIGHWAY_EXCHANGE.{0} (SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID, SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME, MACHINECODE,TICKETCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC, TAXFEE,LIQUIDATION_AMOUNT,SHARE_PROFIT,DEDUCTION_RATE,COST_RATE,FIELDENUM_VALUE) AS SELECT SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID, SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,MACHINECODE, TICKETCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC, TAXFEE,LIQUIDATION_AMOUNT,SHARE_PROFIT,DEDUCTION_RATE,COST_RATE,FIELDENUM_VALUE FROM ( SELECT SELLDATA_ID AS SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID, SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,MACHINECODE, TICKETCODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC, HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,1) AS TAXFEE, HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,3) AS LIQUIDATION_AMOUNT, HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,2) AS SHARE_PROFIT, HIGHWAY_STORAGE.FUNC_GETRATE(SELLDATA_DATE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE,LINENUM) * 1000 AS DEDUCTION_RATE, CASE LINENUM WHEN 1005 THEN 2.1 ELSE 2.5 END AS COST_RATE,B.FIELDENUM_VALUE, ROW_NUMBER()OVER(PARTITION BY TICKETCODE ORDER BY SELLDATA_ID) AS COLNUM FROM HIGHWAY_EXCHANGE.{1} A, PLATFORM_DICTIONARY.T_FIELDENUM@HWS B WHERE A.SELLDATA_TYPE IN ('ALIPAY','WECHAT') AND A.PROVINCE_CODE = B.FIELDENUM_ID AND SELLDATA_EXTRA_DESC LIKE 'SUCCESS%' ) WHERE COLNUM = 1", _DataRow["TABLE_NAME"].ToString().Replace("T_SELLDATA_EXTRA", "V_SELLDATA_EXTRA"), _DataRow["TABLE_NAME"].ToString()); SQLStringList.Add(SQLString); } if (SQLStringList.Count > 0) { _OracleHelper.ExecuteSqlTran(SQLStringList); } } } }