【发布时间】:2019-10-03 10:06:01
【问题描述】:
我是 Proc Oracle 和 C 的初学者。当我基于 Oracle Pro Proc 文档练习示例时,我无法测试使用指标的 Null,参考 Oracle Pro*c guide link(我不确定我的代码是正确的)。
Oracle 文档写入:
6.2.4 测试 NULL 您可以在 WHERE 子句中使用指示变量来测试 NULL,如以下示例所示:
EXEC SQL SELECT ename, sal INTO :emp_name, :salary 来自雇员 WHERE :commission INDICATOR :ind_comm IS NULL ...
我的代码如下:
Locations table:
+-------------+---------+---------+
| Location_Id | Address | Country |
+-------------+---------+---------+
| 1 | London | London |
| 2 | US | null |
+-------------+---------+---------+
void connect()
{
/* Connect to ORACLE. */
strcpy(username, "hr");
strcpy(password, "hr");
EXEC SQL DECLARE DB_NAME DATABASE;
EXEC SQL CONNECT : username IDENTIFIED BY : password;
printf("\nConnected to ORACLE as user: %s\n", username);
}
void testNull()
{
short country_ind = -1;
char address[20];
char *country = "country";
EXEC SQL SELECT ADDRESS INTO :address FROM LOCATIONS
WHERE :country INDICATOR :country_ind is null;
/*
Current, it always output address is London instead of US
*/
printf("address :%d\n", address);
}
void main()
{
connect();
testNull();
}
【问题讨论】:
-
您能否重新表述一下您的 SQL 查询,似乎它们丢失了运算符,此外,我没有看到您的查询与表之间的对应关系
-
@Gar,我更新了你的评论,谢谢。我在 Oracle Pro*c 中写 sql
标签: c oracle oracle-pro-c