c++ - 从存储过程中的临时表中选择

标签 c++ sybase procedure

我正在尝试执行以下操作:

  1. 通过 C++ 代码创建一个包含键/值列和值的 tmp 表 (sybase db)

  2. 创建一个 sp,我将在其中执行“select * from #tmpTable”

  3. 从 C++ 代码调用此 sp。

但是我遇到了一个问题:我无法创建这样的存储过程。 有一个错误,该表不存在(这是真的)。​​

那么,我可以换个方式吗,或者有什么技巧吗?

我的 sp 示例:

create procedure my_sp
as    
    begin
       if OBJECT_ID('#tmpTable') is not null   
           select key, value from '#tmpTable'
    end

最佳答案

您可以在编译 sp 时将临时文件创建为同一 session 的一部分。这将允许 sybase 编译您的 sp。为此,您将需要 tmp 表定义。试试下面-

use databasename
go

create table #tmpTable (key [keydatatype], value [valuedatatype], .....) 

create procedure my_sp
as    
    begin
       if OBJECT_ID('#tmpTable') is not null   
           select key, value from '#tmpTable'
    end

关于c++ - 从存储过程中的临时表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39391540/

相关文章:

C++:对临时的常量引用

java - 日志数据库连接挂起

hibernate - c3p0.SQLWarnings 服务器用户 ID 29 不是数据库 'defaultdb' 中的有效用户

MySQL 函数在 SELECT 后使用 RETURN 变量进行 UPDATE

oracle - PL/SQL : Execute procedure in another procedure

c++ - 强制 std::map 的键类型不是 const

c++ - 如何避免相似模板中的代码重复

java - 尝试并捕获方法

python - 为什么 (0.0006*100000)%10 是 10

Java - Hibernate 异常 - 无法映射反馈[来自反馈]