我正在 oracle 中编写一个存储过程,我想从一开始就为变量赋值:
CREATE PROCEDURE proc
(
param1
, param2
)
AS
variable1 INT AS SELECT MAX(value) FROM table WHERE field = param1;
BEGIN
...
Run Code Online (Sandbox Code Playgroud)
是否允许或者我应该在可执行块中执行它?
Oracle 将查询值分配给这样的变量......
SELECT MAX(value) INTO variable1 FROM table WHERE field = param1;
Run Code Online (Sandbox Code Playgroud)
...正因为如此,您无法在声明块中将变量初始化为查询值。它必须位于执行和/或异常块中:
CREATE PROCEDURE proc
(
param1; -- don't forget the data type here!
, param2; -- or here!
)
AS
variable1 INT;
BEGIN
SELECT MAX(value) INTO variable1 FROM table WHERE field = param1;
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26314 次 |
| 最近记录: |