(1)在创建procedure或function时,后面跟is或as都可以,as和is有什么区别吗
答:没有区别
(2)写java存储过程的步骤
答:定义一个类
(3)a用户下,单独在sqlplus中执行insert into c.t select * from b.t;能成功。但就是在存储过程中编译提示以上ORA-00942错误。
答:存储过程中不能使用角色的权限.. 哪怕你有DBA的权限.需要显示授权
(4)新建了一张表,表名是小写的test,字段是小写的test,结果插入语句执行报错,错误00942,说不存在这张表。
处理过程:最先以为是test是关键字,该表名,还是不行。后来修改小写为大写,能行,但是,不知道为什么会这样。
答:
(5)调用一个存储过程,使用什么命令
答:exec 或者 call
(6)想输出一些信息,可以使用什么?
答: 可以使用,DBMS_OUTPUT包,这个包可以读写
(7)怎么把一个变量传入到存储过程中去?
答:在变量前加冒号
(8) NULL PL/SQL语句表明什么事都不做,但是却不能删去,为什么?
答:因为PL/SQL体中至少需要有一句;
(9)现目前,要实现这样一个需求,存储过程返回一个数组,每一个元素是一个集合,集合中元素分为两类,一类是固定的,另一类是可变数量的,举个例子,现在需要列举所有老师,这是最终返回的数组,每一个老师,代表集合,他的基本信息是固定的,但是他带的学生的基本信息又是一个可变数量的集合,这个怎么实现?
答:初步假设使用嵌套表,需要进一步验证。
(10)什么是schema?
答:这个答案是从网上找来的,以后自己有时间了,还是要好好研究这个问题的,感觉这是和mysql很有区别的一个地方。
在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。
不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据)。
把schema翻译成 “方案”还是比较合理的。
(11)%type是什么意思?
答:表示,这个类型引用的是某一个表的某一列的类型?
(12)FOR Loop循环的使用方法?
答:与java不一样,主要体现在in后面,不是一个集合,而是使用两个点来表示范围,这是很特殊的。
(13)标志名的长度是多少?
答:今天见了一个存储过程,取的名字太长,然后就是报错,标志名过长。
(14)如何查询第一条数据
答:使用rownum = 1