在我正在处理的 Oracle 数据库实例之一上,我在重新编译包时观察到与正常行为不同的行为。
通常,(如Oracle ORA-04068 中的常见错误:包的现有状态已被丢弃)在 PL/SQL 包重新编译后首次调用时会出现以下错误:
ERROR at line 1:
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "PACKAGE.NAME" has been
invalidated
ORA-06508: PL/SQL: could not find program unit being called:
"PACKAGE.NAME"
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)
但是第二次调用应该可以正常工作,假设包当然没有错误。此行为以前在该环境中存在。与此同时,我们从 11g R2 升级到 12c R1,并启用了基于版本的重新定义。
现在我遇到的问题是我不断得到:
ORA-04061: existing state of package body "PACKAGE.NAME" has been
invalidated
ORA-06508: PL/SQL: could not find program unit being called:
"PACKAGE.NAME"
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)
所以不再有 ORA-04068,修复它的唯一方法是重新连接会话或手动调用 DBMS_SESSION.RESET_PACKAGE()(但我无法控制所有可能受到影响的代码),否则每次调用时问题仍然存在。 …
我在创建进程时传递一些数字参数(在VC++中)
我坚持将LPTSTR转换为int.
提前致谢.
嗨,我在表格中有以下数据:
ID ----- startDate ---- endDate
5549 2008-05-01 4712-12-31
5567 2008-04-17 2008-04-30 1
5567 2008-05-01 2008-07-31 1
5567 2008- 09-01 4712-12-31 2
5569 2008-05-01 2008-08-31
5569 2008-09-01 4712-12-31
5589 2008-04-18 2008-04-30
5589 2008-05-01 4712- 12-31
5667 2008-05-01 4712-12-31
5828 2008-06-03 4712-12-31
5867 2008-06-03 4712-12-31
6167 2008-11-01 4712-12-31
6207 2008- 07-01 4712-12-31
6228 2008-07-01 4712-12-31
6267 2008-07-14 4712-12-31
我正在寻找一种方法来为每个id返回连续的时间间隔:
ID,min(startDate),max(endDate),
在粗体ID 5567的结果中有这样的东西
5567 2008-04-17 2008-07-31
5567 2008-09-01 4712-12-31
PL/SQL也是一个选项:)
谢谢,
我想传递一个指针(我将一个带有mmap的数据存储在内存中的文件)到使用fork + exec生成的进程,但我仍然坚持如何将指针传递给exec()生成的进程?
UPDATE1:
感谢您的输入,我使用共享内存创建它与mmap与MAP_INHERIT标志:
使用mmap()函数创建的每个映射文件和共享内存区域都是通过成功调用任何exec函数而取消映射的,除了那些使用MAP_INHERIT选项映射的区域.使用MAP_INHERIT选项映射的区域仍保留在新过程映像中.
来源:http://www.uwm.edu/cgi-bin/IMT/wwwman?topic=exec(2)&msection=
UPDATE2:
这是家庭作业练习,但我想我必须停止思考指针并思考IPC本身.我想我会尝试在子进程中映射相同的文件.
短代码示例非常感谢.
在此先感谢您的帮助.
我想让我的驱动程序安装在x64 Windows上而无需切换到测试模式.你能告诉我如何实现这个目标吗?
谢谢