oracle 的一个存储过程的简单问题

SQL> create or replace procedure xyq() is
2 begin
3 create table xyq (name varchar2(20),pass varchar2(20));
4 end xyq;
5 /
警告: 创建的过程带有编译错误。
[177 byte] By [tinger-影虎] at [2008-5-11]
# 1
不能在过程中用ddl
sky_blue-蓝天2007 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 2
create or replace procedure xyq as
2 begin
3 execute immediate ('grant create table to user');
4 execute immediate ('create table xyq (name varchar2(20),pass varchar2(20
))');
5* end ;
其中user为你当前创建此过程的user
# 3
不能用DDL吗??
SQL> create or replace procedure simple is
2 begin
3 select * from tab;
4 end simple;
5 /

警告: 创建的过程带有编译错误。

SQL> show error;
PROCEDURE SIMPLE 出现错误:

LINE/COL ERROR
-------- ----------------------------------------------------------
3/1 PLS-00428: 在此 SELECT 语句中缺少 INTO 子句
3/1 PL/SQL: SQL Statement ignored
tinger-影虎 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 4
select 后边必须有into
这也是oracle的规定
sky_blue-蓝天2007 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 5
SQL> create or replace procedure simple is
2 begin
3 select * from tab;
4 end simple;
5 /

在过程里的select的结果要传给一个变量/记录/游标的。
pengz-米格 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 6
就不是一个简单的select 语句吗???
tinger-影虎 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 7
等于说,select是一个赋值语句。这个select有一个返回值/记录/游标。

就象你不能写一个"1;"当一条语句。
pengz-米格 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 8
我想用一个复杂的select 语句从三个表中找出一个数据集:
想写成一个过程
让它返回这个数据集,这能有什么好的办法吗??
tinger-影虎 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 9
就用游标嘛
pengz-米格 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 10
怎么用?
能给个简单的例子吗?
tinger-影虎 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 11
http://www.Codefund.cn/Expert/topic/336/336154.shtm
# 12

你怎么老把create or replace procedure simple is中
的as写成is啊。
xiangdie-湘蝶 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 13
学习!!!!!
wylyf-李寻欢 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...
# 14
我也遇到这样的问题了?怎么解决呢?
SQL> create or replace procedure xyq() is
2 begin
3 create table xyq (name varchar2(20),pass varchar2(20));
4 end xyq;
5 /

警告: 创建的过程带有编译错误。
l3js-山 at 2007-10-22 > top of Msdn China Tech,其他数据库开发,SQL Anywhere Studio...