在oracle SQL*Plus中直接输入存储过程,如下:SQL> CREATE OR REPLACE PROCEDURE proc_helloworld
2
3 IS
4
5 BEGIN
6
7 DBMS_OUTPUT.put_line ('Hello World!');
8
9 END;
10
11
12 --提交事务
13
14 COMMIT;
15
SQL> exec proc_helloworld;
BEGIN proc_helloworld; END; *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'PROC_HELLOWORLD'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL> 请问大家,oracle存储过程是这样写的吗?怎样导入oracle中的SQL Plus中的?是怎么执行的?以及在oracle中的SQL Plus中打印hello word?谢谢
2
3 IS
4
5 BEGIN
6
7 DBMS_OUTPUT.put_line ('Hello World!');
8
9 END;
10
11
12 --提交事务
13
14 COMMIT;
15
SQL> exec proc_helloworld;
BEGIN proc_helloworld; END; *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'PROC_HELLOWORLD'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL> 请问大家,oracle存储过程是这样写的吗?怎样导入oracle中的SQL Plus中的?是怎么执行的?以及在oracle中的SQL Plus中打印hello word?谢谢
2 is
3 begin
4 dbms_output.put_line('hello');
5 end;
6 /过程已创建。SQL> commit;提交完成。SQL> exec pro_hellworld;
helloPL/SQL 过程已成功完成。SQL> 以上没有发现错误
因此你的过程并未创建,使用/执行过程创建DDL。
SQL> CREATE OR REPLACE PROCEDURE pro_hellworld
2
3 IS
4
5 BEGIN
6
7 DBMS_OUTPUT.put_line ('Hello World!');
8
9 END;
10
11
12 /过程已创建。SQL> commit;提交完成。SQL> exec pro_hellworld;PL/SQL 过程已成功完成。SQL>
存储过程已经创建了,但是这个hello,没有在控制台打印啊?请问,这是为什么?
IS
BEGIN
DBMS_OUTPUT.put_line ('Hello World!');
END;
/
2 BEGIN
3 DBMS_OUTPUT.PUT_LINE('hello');
4 END;
5 /
Procedure created
SQL> set serveroutput on;
SQL> exec pro_hellworld;
hello
PL/SQL procedure successfully completed
SQL>
IS
BEGIN
DBMS_OUTPUT.put_line ('Hello World!');
END; call pro_hellworld();
在这里对局部变量,异常处理,循环控制和IF条件句有新的语法定义。
下面是一个包括存储过程的实例声明
:
(译注:为了方便阅读,此后的程序不添任何中文注释)
CREATE PROCEDURE procedure1 /* name 存储过程名*/
(IN parameter1 INTEGER) /* parameters 参数*/
*/
BEGIN /* start of block 语句块头
DECLARE variable1 CHAR(10); /* variables变量声明 */
IF parameter1 = 17 THEN /* start of IF IF条件开始*/
SET variable1 = 'birds'; /* assignment 赋
值*/
ELSE
SET variable1 = 'beasts'; /* assignment 赋值*/
END IF; /* end of IF IF结束*/
INSERT INTO table1 VALUES (variable1);/* statement SQL语句*/
END /* end of block 语句块结束*/
/使用/执行过程创建DDL