|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不管怎么样,市场的结果已经证明MySQL具有性价比高、灵活、MySQL学习教程广为使用和具有良好支持的特点。拔出|工具
在开辟数据库程序时,常常必要象数据库表工具内录进些测试数据,假如针对每一个表工具都创建一个录进的存储历程,显得有些贫苦。这里给出一个示例pl/sql代码,挪用者给出要拔出测试数据的表工具称号,和待拔出的行数后,历程便可发生随机数据,录进到表工具内。
/*-------------向给定的表工具内拔出实践的行。---------------------------*/
procedureInsert_Rows(p_tablenamevarchar,p_numrowsnumber)
as
--界说dba_tab_columns视图范例的表工具,用于存储给定表的字段的界说信息
typetable_defineistableofdba_tab_columns%rowtypeindexbybinary_integer;
tdtable_define;
ibinary_integer;
--界说静态sql查询的游标
l_cursornumber:=dbms_sql.open_cursor;
l_ignonenumber;
--静态sql语句字符变量
sqlstrvarchar2(1000);
begin
--取得表的一切字段的界说信息
i:=0;
forrecin(select*fromdba_tab_columnswheretable_name=upper(p_tablename))
loop
i:=i+1;
td(i):=rec;
dbms_output.put_line(td(i).table_name);
endloop;
--构造insertsql语句的字段字符串
sqlstr:=insertinto||td(1).table_name||(;
forvarin1..iloop
sqlstr:=sqlstr||td(var).column_name;
if(vari)then
sqlstr:=sqlstr||,;
endif;
endloop;
--构造insertsql语句的参数字符串
sqlstr:=sqlstr||)||values(;
forvarin1..iloop
sqlstr:=sqlstr||:||td(var).column_name;
if(vari)then
sqlstr:=sqlstr||,;
endif;
endloop;
sqlstr:=sqlstr||);
dbms_output.put_line(sqlstr);
--为参数变量赋值
dbms_sql.parse(l_cursor,sqlstr,dbms_sql.native);
forvar_rowsin1..p_numrowsloop
--添补拔出参数的值
forvarin1..iloop
iftd(var).data_type=VARCHAR2then
dbms_sql.bind_variable(l_cursor,:||td(var).column_name,dbms_random.string(A,td(var).data_length));
elsiftd(var).data_type=NUMBERthen
dbms_sql.bind_variable(l_cursor,:||td(var).column_name,
round(dbms_random.value*power(10,td(var).data_precision-td(var).data_scale),td(var).data_scale));
else
dbms_sql.bind_variable(l_cursor,:||td(var).column_name,UNKNOW_TYPE);
endif;
endloop;
--实行静态的SQL语句
l_ignone:=dbms_sql.execute(l_cursor);
endloop;
commit;
dbms_sql.close_cursor(l_cursor);
endInsert_Rows;
MySQL已经为支持所有最流行的Web2.0语言做好了准备,诸如Ruby、Ajax等,当然还有PHP。有的业界分析师说过,“每一个Web2.0公司实质上就是一个数据库公司。 |
|