oracle变量怎么声明,oracle创建函数中定义变量

请问一下Oracle存储过程中声明变量一定要declare吗

不需要加declare的,直接在"IS(或AS)"后面紧跟着定义这个存储过程的局部变量即可.

创新互联是一家专注于成都网站设计、成都网站建设、外贸网站建设与策划设计,肃宁网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:肃宁等地区。肃宁做网站价格咨询:18980820575

在 oracle 的存储过程中 如何声明一个动态表的记录型变量

你只能在存储过程中使用动态的匿名块了。

比如:

create or replace procedure pro1(p_tname varchar2) is

v_dy_sql_block varchar2(32767) ;

begin

v_dy_sql_block := ' declare '||

' l_row '||p_tname||'%rowtype ;' ||

'....' ;

execute immediate v_dy_sql_block ;

end;

declare 在Oracle中声明变量 这么使用变量

[TEST1@orcl#15-4月 -10] SQLset serveroutput on

[TEST1@orcl#15-4月 -10] SQLdeclare

2 v_num number;

3 begin

4 select count(*) into v_num from tab;

5 dbms_output.put_line(v_num);

6 end;

7 /

15

PL/SQL 过程已成功完成。

oracle中的变量声明部分的一个简单问题

这个的number(2)中的2指的是数字精度或者说是数字的最大长度。

如果只有数字长度而没有小数位数的话,接收的结果是一个最大为两位的整数。

declare

n1 number(2);

n2 number(2);

n3 number(2);

begin

n1 := 19.123;

n2 := 9.123;

-- n3 := 999.123; -- 这里将会报错

dbms_output.put_line(n1); -- 这里返回结果 19

dbms_output.put_line(n2); -- 这里返回结果 9

end;

NUMBER Datatype

The NUMBER datatype is used to store zero, positive and negative

fixed and floating point numbers with magnitudes between 1.0 x

10

digits of precision. If you specify an arithmetic expression whose

value has a magnitude greater than or equal to 1.0 x 10

returns an error. You can specify a fixed point number datatype

with this syntax:

NUMBER(p,s)

where:

p

is the precision, or the total number of digits. Oracle guarantees

the portability of numbers with precision ranging from 1 to 38.

s

is the scale, or the number of digits to the right of the decimal

point. The scale can range from -84 to 127.

You can also use one of these alternate forms:

NUMBER(p)

is a fixed point number with precision p and scale 0.

NUMBER

is a floating point number with precision 38. Note that a scale

value is not applicable for floating point numbers.

SCALE AND PRECISION

Specify the scale and precision of a number column for extra

integrity checking on input. Specifying scale and precision does

not force all values to a fixed length. If a value exceeds the

precision, Oracle returns an error. If a value exceeds the scale,

Oracle rounds it.

These examples show how Oracle stores data using different

precisions and scales.

Actual Data Specified as Stored as

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

7456123.89 NUMBER 7456123.89

7456123.89 NUMBER (9) 7456124

7456123.89 NUMBER (9,2) 7456123.89

7456123.89 NUMBER (9,1) 7456123.9

7456123.8 NUMBER (6) exceeds precision

7456123.8 NUMBER (15,1) 7456123.8

7456123.89 NUMBER (7,-2) 7456100

7456123.89 NUMBER(7,2) exceeds precision

NEGATIVE SCALE

If the scale is negative, the actual data is rounded to the

specified number of places to the left of the decimal point. For

example, a specification of (10,-2) means to round to hundreds.

SCALE GREATER THAN PRECISION

You can specify a scale that is greater than precision, although it

is uncommon. In this case, the precision specifies the maximum

number of digits to the right of the decimal point. As with all

number datatypes, if the value exceeds the precision, Oracle returns

an error. If the value exceeds the scale, Oracle rounds the value.

For example, a column defined as NUMBER(4,5) requires a zero for the

first digit after the decimal point and rounds all values past the

fifth digit after the decimal point. The following examples show

the effects of a scale greater than precision:

Actual Data Specified as Stored as

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

.01234 NUMBER(4,5) .01234

.00012 NUMBER(4,5) .00012

.000127 NUMBER(4,5) .00013

.0000012 NUMBER(2,7) .0000012

.00000123 NUMBER(2,7) .0000012

FLOATING POINT NUMBERS

Oracle also allows you to specify floating point numbers. A

floating point value either can have a decimal point anywhere from

the first to the last digit or can omit the decimal point

altogether. A scale value is not applicable to floating point

numbers because there is no restriction on the number of digits that

can appear after the decimal point.

You can specify floating point numbers with the appropriate forms of

the NUMBER datatype discussed in the section on page -. Oracle

also supports the ANSI datatype FLOAT. You can specify this

datatype using one of these syntactic forms:

FLOAT

specifies a floating point number with decimal precision 38, or a

binary precision of 126.

FLOAT(b)

specifies a floating point number with binary precision b.

The precision b can range from 1 to 126.

To convert from binary to decimal precision, multiply b by 0.30103.

To convert from decimal to binary precision, multiply the decimal

precision by 3.32193. The maximum of 126 digits of binary precision

is roughly equivalent to 38 digits of decimal precision.

oracle存储过程可以声明变量吗

你在写存储过程的时候就按照语法 CREATE OR REPLACE PROCEDURE P_NAME IS BEGIN END P_NAME; 就行了,但是你要是在SQL window或者command window中调试一段代码的话,就要用declare声明。

oracle 在自定义函数怎么声明变量

呃,一个输入变量,一个输出变量不就结了

create or replace function Fun_Multiplicative(v_input in number) return number is

v_result number(8);

v_total number(8) :=1;

v_count number(5) :=1;

begin

while v_count = v_input loop

v_total := v_total * v_count;

v_count := v_count + 1;

end loop;

v_result := v_total;

return(v_result);

end Fun_Multiplicative;


分享名称:oracle变量怎么声明,oracle创建函数中定义变量
链接URL:http://azwzsj.com/article/hcspcp.html