定义oracle sql变量,在.sql脚本中定义和使用变量

您可以定义NUMBER变量没问题:

SQL> VARIABLE myNum NUMBER;

SQL> EXEC :myNum := 123.456;

PL/SQL procedure successfully completed.

SQL> print myNum;

MYNUM

----------

123.456

还支持许多其他类型。这是VARIABLE命令的USAGE帮助文本:

Usage: VAR[IABLE] [ [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |

VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |

NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE

REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ]

如果您没有任何其他内容键入VARIABLE(或只是VAR),SQL * Plus会列出所有变量及其值。

附录:对比原始问题中的两个变量赋值样式。

当你这样做时......

define first_name = Joe

select * from customer where name = '&first_name';

...它更像是C / C ++中的#define。你不能把它当成一个变量;它只是每次SQL * Plus看到&first_name时粘贴的文本。

当你这样做时......

variable first_name CHAR;

exec :first_name:= 'Joe';

select * from customer where name = :first_name;

您正在创建一个可以操作的实际变量。

请注意,如果您在定义中使用CHAR(没有大小),则第一个分配将决定其大小,之后您不能再使用它。如果将其定义为CHAR(50),则它总是长度为50个字符并用空格填充。这可能会让人感到困惑,因此我建议在大多数情况下使用VARCHAR2作为字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值