Skip to content

创表等初始化SQL环境语句

XuguConnection conn = new XuguConnection();
conn.ConnectionString = conn_xugu ;
Try
{
    conn.Open();
    XuguCommand cmd = new XuguCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select count(*) from user_tables where table_name='TA'"; 
    if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
    {
         cmd.CommandText = "drop table TA cascade";
         cmd.ExecuteNonQuery();
    }
    cmd.CommandText = "select count(*) from user_tables where table_name='TP'";
    if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
    {
         cmd.CommandText = "drop table TP cascade";
         cmd.ExecuteNonQuery();
    }
    cmd.CommandText = "select count(*) from user_sequences where seq_name='SEQ_TP'";
    if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
    {
        cmd.CommandText = "drop sequence SEQ_TP cascade";
        cmd.ExecuteNonQuery();
    }
    cmd.CommandText = "select count(*) from user_sequences where seq_name='SEQ_TA'";
    if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
    {
        cmd.CommandText = "drop sequence SEQ_TA cascade";
        cmd.ExecuteNonQuery();
    }
    string sql_str1 = "create table ta(id number,pid integer,p_float float,p_double double,pkey bigint,p_sint smallint,p_tint tinyint,name char(100),descri varchar(100),modify_time datetime default sysdate,p_numr numeric(4,2),p_clob clob,p_bool boolean,p_date date default sysdate,p_time time default sysdate,p_blob blob)";
    string sql_str2 = "create table tp(id number,pid integer,pname char(100),descri varchar(100),modify_time datetime default sysdate)";
    string sql_str3 = "create sequence seq_ta minvalue 1 maxvalue 999999999 start with 1 increment by 1 cache 20";
    string sql_str4 = "create sequence seq_tp minvalue 1 maxvalue 999999999 start with 1 increment by 1 cache 20";
    string sql_str5 = "create or replace view v_ap as  select ta.id as id1,tp.id id2,ta.name,tp.pname,ta.modify_time from tp left join ta on tp.pid=ta.pid";
    string sql_str6 = "create or replace trigger trig_identity_ta before insert on ta for each row begin if inserting and :new.id is null then  :new.id := seq_ta.nextval; end if;   end trig_identity_ta;";
    string sql_str7 = "create or replace trigger trig_identity_tp before insert on tp for each row begin if inserting and :new.id is null then  :new.id := seq_tp.nextval; end if;  end trig_identity_tp;";

    cmd.CommandText = sql_str1;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str2;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str3;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str4;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str5;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str6;
    cmd.ExecuteNonQuery();
    cmd.CommandText = sql_str7;
    cmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
    Console.WriteLine(ex.ToString());
    conn.Close();
    Console.WriteLine("测试关闭连接后连接当前状态" + conn.State.ToString());
}