sql*Plus works with both sql and
PL/sql. How do I know whether some
code is sql or PL/sql? If my code has
a for loop,is it not sql anymore?PL/sql is an extension for sql to have
loops,conditionals etc. Then any sql
code is by default PL/sql code? Isn’t
it so?
区分b / w sql和PL / sql的两个例子触发了这个问题:
What is the difference between these two create table statements?
https://stackoverflow.com/questions/2267386/oracle-11g-varray-of-objects/2267813#2267813
通过查看首字母缩略词的定义,您可以了解每个功能的涵盖范围:
敏锐的读者可能会注意到sql如何出现两次8)这是因为sql经常嵌入在PL / sql中 – PL / sql是一种语言,它提供了一个专有的4th generation language (4GL),可以很好地与Oracle中的数据库对象配合使用.
令人困惑的部分是PL / sql和sql重叠的地方. sql的权限包括数据插入,查询,更新和删除,所谓的DML或数据操作语言操作,但它还包括创建,更改,重命名,删除,它们是DDL或数据定义语言操作.在这里有些人可能会感到困惑.创建存储过程的操作(使用PL / sql编写的操作)实际上是sql – 您使用sql创建表示PL / sql块的数据库对象.
同样,您可以在PL / sql中嵌入sql代码.例如,PL / sql中的FOR循环可以基于SQL查询.吹了一下你的想法,嗯?您可以使用sql创建一个过程,该过程实际上在内部使用sql对数据库中的记录执行某些操作.
如果你问我,很酷的东西.