开始使用oracle,记录过程

(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   

你可能感兴趣的:(oracle,sql,mysql)