重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle怎么保存矩阵 oracle保存矩阵数据

请教ORACLE高手矩阵案例的实现

可以先定义个变量,发生异常的时候将异常信息赋值给变量,插入表的时候用变量,日志表没给表结构,我自己重新定义了一个,测试ok。

创新互联-成都网站建设公司,专注成都网站设计、网站制作、网站营销推广,域名与空间,雅安服务器托管网站运营有关企业网站制作方案、改版、费用等问题,请联系创新互联

CREATE TABLE T_LOG_ERROR

(ERR_ID NUMBER,

ERR_TIME DATE,

ERR_CODE NUMBER,

ERR_INFOR VARCHAR2(4000)

);

create or replace procedure p_testone is

v number(2);

v_sqlcode number;

v_sqlerrm varchar2(4000);

begin

select 1 / 0 into v from dual;

--异常处理

EXCEPTION WHEN OTHERS THEN

ROLLBACK;

v_sqlcode :=sqlcode;

v_sqlerrm :=SUBSTR(sqlerrm, 1, 2000);

insert into t_log_error values(1,sysdate,v_sqlcode,v_sqlerrm);commit;

DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));end;

执行存储过程后就可以把异常信息记录到表t_log_error了。

oracle存储过程简单问题

因为第一个存储过程.

你查询出的数据, 存储到了  v_emp  变量中.

第二个存储过程.

你的查询结果, 没有保存的变量.

而 Oracle 存储过程, 又不像 SQL Server 那么,  SELECT 语句, 就能返回结果集。

所以, 第二个存储过程要抱错了。

而且, 报错信息, 也是很明显的

SQL CREATE OR REPLACE PROCEDURE testProc

2  AS

3  BEGIN

4    SELECT 'Hello 1' AS A, 'World 1' AS B FROM DUAL UNION ALL

5    SELECT 'Hello 2' AS A, 'World 2' AS B FROM DUAL ;

6  END;

7  /

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

SQL show err;

PROCEDURE TESTPROC 出现错误:

LINE/COL ERROR

-------- -----------------------------------------------------------------

4/3      PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

就是提示你,  缺少  INTO 子句了。

oracle 如何保存col列的格式

是指sqlplus的查询输出格式?

这个没多大用product\12.2.0\dbhome_1\sqlplus\admin 里面有个glogin.sql能改全局设定 但没啥意义

oracle的sqlplus怎样保存修改的数据?

oracle中执行了insert、update、delete这三个DML语句后,结果在未提交前实际上是保存在undo空间内,只有提交之后,才会真正写入到表中。所以会发生你的问题。

提交语句:commit

另外,在未做提交前,其他人是无法select到你处理的数据的,看到的是未处理前的数据。

还有一点要说明,当你执行了update、delete时,语句所影响的数据会被oracle自动锁定,其他人只能查,而不能update或delete,如果执行update或delete,那么就会产生数据库锁。而锁一旦产生,对系统的影响会很大,因此应尽快提交。

如何把oracle存储过程保存到数据库里

oracle

存储过程的基本语法

1.基本结构

CREATE

OR

REPLACE

PROCEDURE

存储过程名字

(

参数1

IN

NUMBER,

参数2

IN

NUMBER

)

IS

变量1

INTEGER

:=0;

变量2

DATE;

BEGIN

END

存储过程名字

2.SELECT

INTO

STATEMENT

将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条

记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)

例子:

BEGIN

SELECT

col1,col2

into

变量1,变量2

FROM

typestruct

where

xxx;

EXCEPTION

WHEN

NO_DATA_FOUND

THEN

xxxx;

END;

...

3.IF

判断

IF

V_TEST=1

THEN

BEGIN

do

something

END;

END

IF;

4.while

循环

WHILE

V_TEST=1

LOOP

BEGIN

XXXX

END;

END

LOOP;

5.变量赋值

V_TEST

:=

123;

6.用for

in

使用cursor

...

IS

CURSOR

cur

IS

SELECT

*

FROM

xxx;

BEGIN

FOR

cur_result

in

cur

LOOP

BEGIN

V_SUM

:=cur_result.列名1+cur_result.列名2

END;

END

LOOP;

END;

7.带参数的cursor

CURSOR

C_USER(C_ID

NUMBER)

IS

SELECT

NAME

FROM

USER

WHERE

TYPEID=C_ID;

OPEN

C_USER(变量值);

LOOP

FETCH

C_USER

INTO

V_NAME;

EXIT

FETCH

C_USER%NOTFOUND;

do

something

END

LOOP;

CLOSE

C_USER;

8.用pl/sql

developer

debug

连接数据库后建立一个Test

WINDOW

在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试


网页题目:oracle怎么保存矩阵 oracle保存矩阵数据
标题URL:http://cqcxhl.com/article/hgdcsh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP