PROC基础知识之SQL变量

本文介绍了SQL变量的类型,包括简单变量、数组和指针,并根据功能分为输入、输出和指示器变量。重点阐述了在PROC程序中,SQL变量如何作为输入和输出在SQL语句(如SELECT、INSERT)与C语言之间传递信息,强调了SQL变量需具有合法内存地址且不能使用数字或函数替代的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从数据结构角度来分,SQL变量有简单变量,数组和指针。从功能上分,又有输入,出和指示器变量。而输入和输出变量又叫宿主变量。在SELECT或者FETCH语句的INTO子句所引用的变量叫输出SQL变量,因为ORACLE把从数据库表列中选择的值存放到这类变量中。而在其它SQL语句(INSERT,UPDATE….)中所包含的变量都叫输入SQL变量,ORACLE把输入SQL变量中的数据输入给ORACLE存入数据库表列中,或与数据库表列中的数据进行比较。

在PROC程序中含有C和SQL两种语言的语句,为了解决他们之间的信息传递,特引入了一种变量,称为SQL变量。

SQL变量可以在SQL语句中使用,也可以在C语言中使用,但是C语言的变量只能在C语言中使用。

 

int empno;

char ename[10];

float sal;

……

EXEC SQL SELECT ename, sal INTO :ename, :sal FROM emp

WHERE empno = :empno;

          SQL变量必须具有合法的内存地址,不能将数字或函数作为SQL变量,例如下面的代码是非法的:

#define MAX_EMP_NUM      9000

int get_dept();

……

EXEC SQL INSERT INTO emp (empno, ename, deptno) VALUES

(:MAX_EMP_NUM + 10, ’CHEN’, :get_dept());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值