MYSQL网页编程之Oracle中调试存储历程
与其他数据库相比,MySQL易学易用。oracle|存储历程自己在写存储历程时,不晓得怎样调试它。有一种调试举措就是在程序中打印出变量的值,在JAVA中俺是打印在把持台上的。以下告知众位怎样从在sqlplus上完成。
1、sqlplus上实行“setserveroptputon”命令
2、在存储过程当中能够用DBMS_OUTPUT.PUT_LINE(VarName);来打印出来
给个存储历程的例子:
createorreplaceproceduretestis
Emp_nameVARCHAR2(10);
Cursorc1ISSELECTEnameFROMEMP
WHEREDeptno=20;
BEGIN
OPENc1;
LOOP
FETCHc1INTOEmp_name;
EXITWHENc1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(Emp_name);
ENDLOOP;
endtest;
背景创建test这个存储历程,编译它,以scott/tiger帐号进进,实行setserveroptputon,然后实行“exectest”
由于在MySQL中有如此众多的额外功能可选,诸如存储引擎等,你可以选择最适合你公司的一个,或者尝试选用多个引擎。MySQL开始非常小巧,但是可以随着公司的成长而不断地变强大。 需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 也可谈一下你是怎么优化存储过程的?
页:
[1]