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