pck資料庫
『壹』 怎麼修改資料庫參數
修改方法:
使用update語句。語法是:update table_name set column = value[, colunm = value...] [where condition];
[ ]中的部分表示可以有也可以沒有。
例如:update students set stu_name = "zhangsan", stu_gender = "m" where stu_id = 5;
具體操作方法:
a lter table table_name add xxoo number(4) default 0 ;
因此 不僅要修改字典, 還要刷新全部數據.
1) 在ALTER sql中有帶預設值,ORACLE 會直接刷新全部的記錄。
2) 在ALTER sql中沒有帶預設值,ORACLE 只會影響到後來的記錄。
1 2 3 4 alter table table_name add xxoo number(4) default null; Table altered,Executed in 0.062 seconds。
帶有default null 就可以了?,1 2 3 4 alter table table_name add xxoo number(4) default 0;Table altered,Executed in 1.625 seconds,原來的話 要更新所有的行, 會導致UNDO 段佔用
使用語句Alter table a add test number(10) default 0;更新一個大表中欄位時,表有四個分區,數據達到幾十億行,增加一個欄位竟然要幾個小時的時間,修改語句加上Nologging ,怎麼沒有作用呢?去找是不是哪有鎖了呢,使用語句 select *。
『貳』 C++ ADO 如何調用和獲取存儲過程返回記錄集
CADODatabase db;
db.Open(Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=%s;Data Source=%s;User Id=%s;Password=%s;Min Pool Size=60;Max Pool Size=100;pooling = true;);
CADORecordset rs(db);
rs.OpenEx(sql);
rs.m_pCmd->Parameters->Append(rs.m_pCmd->CreateParameter(_bstr_t("Para"), adInteger, adParamInput, 0, _variant_t(type)));
rs.ExecuteCmd();
for (; !rs.IsEOF(); rs.MoveNext())
{
CString str("");
rs.GetFieldValue("Column", str)
}
db的連接字元串里%s分別代表資料庫名,資料庫服務地址(含實例名),資料庫用戶名(sa),連接密碼。
sql是存儲過程名。
OpenEx之後就是追加參數,其中Para是參數名,Type是傳入的參數值。
rs.ExecuteCmd(),執行。
後面是獲取記錄集的方式。
Column是列名,str 是Column這一列對應的值。