问题标签 [embedded-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
964 浏览

c - ORA-24811: 写入 LOB 时,提供的数据少于指示的数据

每当我运行我的 Pro*C 代码时,它使用 CLOB 将一个大缓冲区插入到表中。

ORA-24811:写入 LOB 时,提供的数据少于指示的数据。

代码如下

输出

缓冲区有一个很大的 xml 文件。谁能解释我错过了什么?

0 投票
2 回答
4213 浏览

oracle - 如何从 Oracle 数据库实现 ESQL 中的过程(内部过程)

我在 Oracle db 中创建了一个将 Customer 插入到我的表中的存储过程

这是我的代码:

现在我想在 ESQL 中使用这个过程并直接在 ESQL 中创建它,而不是从 Oracle 数据库或其他数据库中调用它

你能指导我一下吗...

0 投票
1 回答
184 浏览

sql - 在 PL/pgSQL 触发器函数中使用主机变量

我试图弄清楚如何在 PL/pgSQL 中编写一个触发器函数,该函数可以将值选择到嵌入式 SQL/C 程序中的主变量中。我是 SQL 新手,所以如果我的术语有点偏离,我深表歉意。基本上,在更改表时,我希望函数触发视图以更新存储在主机变量中的值。

这是我创建并测试工作的视图:

这就是我使用主机变量 dbID 和 dbNum 调用视图的方式:

这是我创建的触发器:

这是我想使用的触发功能:

出于测试目的,我使用的是 pgAdmin III。当我更改函数以执行任何不使用主机变量的操作(例如更新预定义行中的值)时,我可以看到它已创建。但是,我无法让它使用主机变量创建触发器或触发器函数。

现在,我只是想弄清楚如何总体上实现这一点,所以我知道我当前的代码实际上并没有做太多事情。一般的想法是我希望我的触发器函数调用使用 C 中的主机变量的预定义视图。如果有更好的方法来实现触发器,那么该建议也将不胜感激。

0 投票
1 回答
304 浏览

sql - 结合嵌入式 SQL 和 libpq 的功能

我用 C 语言编写了一个程序,它定期将 PostgreSQL 数据库中的变量轮询到主机变量中并监听来自数据库的通知。我想知道是否有一种解决方案可以让我 1. 使用嵌入式 SQL (ECPG) 听取来自数据库的通知或 2. 一步从 libpq 命令 PQexec 中选择 INTO 主机变量,而无需连续选择和解析字符串 - 即具有与 SELECT INTO(多个主变量)相同的功能。

现在,我必须设置两个连接,一个通过 EXEC SQL 来实现 SELECT INTO 功能,另一个通过 libpq 来创建一个连接指针,稍后 PQnotifies 用它来监听通知。该程序目前可以运行,但是必须将两个连接都设置到同一个数据库似乎是多余的。

0 投票
1 回答
960 浏览

sql - 带有嵌入式 sql 的程序给出编译错误

你好我是一个新手我正在学习嵌入式ci想要创建一个简单的代码,当我编译上面的程序时在c中创建一个表我收到错误

0 投票
0 回答
183 浏览

sql - 插入后 ESQL 返回新 ID

我正在尝试使用 ESQL 检索 SQL 插入后生成的新 ID。我在弄清楚正确的语法或如何使用这两个 UUID 函数时遇到问题,并且可以使用一些帮助。

0 投票
1 回答
91 浏览

sql - C 中的 DB2 嵌入式 SQL 允许对输入和输出使用相同的主变量吗?

在嵌入式 SQL 查询中对输入和输出使用相同的主变量是否安全?我正在使用 C 和 DB2 静态嵌入式 SQL。

例子:

0 投票
0 回答
273 浏览

sql - ECPG:EXEC SQL DECLARE SECTION 中的 sizeof()

我有 Sybase ASE CPRE 嵌入式 SQL С 代码:

尝试迁移到 PostgreSQL ECPG Embedded SQLС 代码:

但是 ecpg.exec 预编译器返回:

我的解决方案:

预编译后的函数C代码:

但也许有一个更正确的决定。

0 投票
2 回答
5124 浏览

c - Oracle Pro*C——在嵌套循环中使用游标

我正在自学 Pro*C,并且有一个程序可以(据说)使用游标遍历数据库中的记录,然后编译并运行。问题是当变量打印(使用光标读入的变量)时,我得到了内存中的任何垃圾。

我尝试以几种不同的方式拆分sql exec语句,但这没有帮助。还尝试在不同的地方打开和关闭sql,也无济于事。我真的处于一个漫长的调试过程的最后,我很确定我正在犯一个非常新手的错误。如果这里的任何 Oracle 程序员不介意花一点时间,我真的很想在这里得到一些关于如何回到正轨的反馈。

它应该打印:

它实际上打印:

我觉得我完全弄乱了光标,但我无法准确指出问题出在哪里,因为我仍然习惯于如何在 Pro*C 中声明和使用变量。此外,C 程序通常会被调试,但这是在远程服务器上运行的,调试非常有限,甚至没有 dbx 命令。

编码:

通常C程序会在调试器中运行,但这是Pro C,我对整个Oracle Pro C调试的东西有点迷失(因为它在远程数据库上运行)。

经历了这些但没有帮助:

oracle嵌套游标的奇怪行为

Oracle ProC 插入值((选择 ...))

Oracle Pro*C 使用游标更新表失败

我被告知应该以不同的方式声明 VARCHAR 变量,但其他方式似乎会引发错误。

0 投票
1 回答
1349 浏览

sql - Pro*C Oracle -- 循环通过 sql fetch

我从 Pro*C 开始,并且有一个程序可以读取记录并按识别值(客人)分组打印出来。为了打印所有信息,我使用了 for 循环中的一个 break 来控制去哪里。它可以编译,但没有遵循打印方案,实际上进入了无限循环。最后的最后一个中断是停止无限循环,并且由于某种原因它没有达到任何条件(即使是默认的 else)。它正在执行的远程数据库服务器上的调试有限(dbx 不可用)。

虽然不是光标结尾(即 sqlcode = 0) 如果 PrevSaleItem Not = Cursor.Item_ID 写入项目的小计 初始化 ItemQty 和 ItemTotal 为 0 将 PrevSaleItem 设置为 Cursor.Item_ID 如果打印输出详细信息行结束 添加 Cursor.Quantity 到 ItemQty 添加Cursor.calc_tax 到 ItemTotal 和 GuestTotal 获取光标中的下一条记录 End While 打印最后一项的小计 打印总计

The logic that should be happening is as follows

假设中断机制位于外部 for 循环(未显示)内。它应该打开光标,获取第一条记录,然后打印客人和销售项目的标题。然后它通过设置值来初始化总计和中断变量。虽然不是光标的结尾(sqlcode 为 0,而不是 while 仅用于带中断的循环)如果前一个项目!= 项目 id,则它打印小计,将项目数量和总计初始化为 0,并将前一个项目设置为项目id (然后打破 if 条件)。项目数量按表中的数量增加,并calc_tax添加到项目和客人总数中。获取下一条记录,打印最后一项的总计,然后打印该客人的总计。

它没有打印应该在的位置并且处于无限循环中,并且在我尝试在所有条件中中断之后,我无法解释它是如何发生的。我确信这是一个初学者的错误,所以也许一个 jr Oracle 开发人员(但专业人士会很棒)有时间让我回到正轨。