我有一个使用 Oracle 10g(pro*c 和库)编译的多线程 C 应用程序。该程序每个线程使用一个数据库连接。我们正在迁移到 11g,并且在针对 11g 进行测试时,任何使用全局上下文以外的上下文的东西都会SQL-02134: Invalid runtime context
在连接到数据库时生成一个。使用全局上下文可以正常工作。这是从 10g 过渡到 11g 的已知不兼容性,还是我做错了什么?我最终将针对 11g 重新编译所有内容,但出于实现目的,如果我们可以运行 10g 程序直到所有数据库都转换完毕,这会容易得多。
对于它的价值,代码包括我认为是正常的东西:
EXEC SQL ENABLE THREADS;
EXEC SQL CONTEXT ALLOCATE :thread_ctx
EXEC SQL CONTEXT USE :thread_ctx