在oracle中使用编译错误创建的过程。

时间:2014-02-10 15:49:28

标签: oracle plsql oracle10g syntax-error

我在oracle中编写了简单的存储过程。但它显示了使用编译错误创建的过程。

我的代码是:

CREATE OR REPLACE PROCEDURE PRC_SELECT
AS
BEGIN
SELECT * FROM tb_name;
END;
/

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

这是一个非常基本的骨架,符合您的要求。

CREATE OR REPLACE PROCEDURE PRC_SELECT(p_OLD IN VARCHAR2)
AS
my_rec tb_name%rowtype;
BEGIN
SELECT * into my_rec  FROM tb_name WHERE old = p_OLD;
END;
/

my_rec将创建为PL/SQL类型,其结构将为表tb_name的结构!

答案 1 :(得分:0)

程序无法选择*返回屏幕。 你必须将它批量收集到一个集合中并返回它或打开一个光标并返回它。 一个过程是pl / sql,它不直接写入屏幕。 如果需要,可以使用dbms_output.put_line写入每条记录。 您可能还想查看流水线函数,稍后可以在SQL中使用它们。 这取决于你的要求是什么。

答案 2 :(得分:0)

如果您真的想阅读tb_name中的所有行,可以尝试:

CREATE OR REPLACE PROCEDURE PRC_SELECT
AS
BEGIN
  FOR aRow IN (SELECT * FROM tb_name)
  LOOP
    DBMS_OUTPUT.PUT_LINE('Retrieved ' || aRow.SOME_FIELD);
  END LOOP;
END;

请注意,如果tb_name中有很多行,这可能会产生大量输出。

分享并享受。