- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
谁能解释一下我的 12c 笔记本电脑安装可能有什么问题导致以下问题?
简而言之:我在架构中创建的所有代码都在那里并且可以执行,但不能在任何 IDE 中或通过 dba_source 查看或编辑。
首先:我不是 DBA,也永远不会是,尽管我对 DBA 有一些了解。
我是一名 Oracle 开发人员。所以我可以在安装 12c 时做各种愚蠢的事情。
我已经在我的笔记本电脑上安装了 Oracle Database 12c 企业版 12.1.0.1.0 64 位。
1 容器数据库。
1 可插拔数据库。
当我在任何 IDE(pl/sql developer。sql developer,...)中登录到我的可插入数据库时,我的所有对象都在所选 IDE 的“浏览器”中可见。
但是,当我尝试打开(查看其源代码)基于 plsql 的对象(如包/过程/函数/类型)时,却无法打开。
一个异常(exception)是触发器。它们可以被查看和编辑。
plsql 开发人员 (10.0.5.1710) 告诉我(例如):“/* PACKAGE ERO$UTL 的来源不可用 */”
sql developer (4.0.3.16) 只是告诉我:“创建或替换”。
但是这些对象可以正常使用。
起初我以为“plsql 开发人员还没有为 12c 做好准备”
但后来我看到 sqldev 做了同样的事情,所以....
我检查了数据库/数据字典本身。
我创建了一个简单的程序:
ERO@EVROCS>CREATE OR REPLACE PROCEDURE hi_there
2 AS
3 BEGIN
4 dbms_output.put_line ('Hello World');
5 END;
6 /
Procedure created.
ERO@EVROCS>exec hi_there
Hello World
PL/SQL procedure successfully completed.
ERO@EVROCS>SELECT object_name||' - '||object_type object
2 FROM user_objects
3 WHERE object_name = 'HI_THERE';
OBJECT
-----------------------------------------------------------
HI_THERE - PROCEDURE
1 row selected.
ERO@EVROCS>SELECT *
2 FROM user_source
3 WHERE name = 'HI_THERE'
4 ;
no rows selected
ERO@EVROCS>SELECT *
2 FROM user_source
3 ;
no rows selected
ERO@EVROCS>SELECT DISTINCT
2 owner
3 FROM dba_source
4 order by owner
5 ;
OWNER
-------------------------------
APEX_040200
CTXSYS
DBSNMP
DVF
DVSYS
FLOWS_FILES
GSMADMIN_INTERNAL
LBACSYS
MDSYS
OLAPSYS
ORACLE_OCM
ORDPLUGINS
ORDSYS
OUTLN
SYS
SYSTEM
WMSYS
XDB
18 rows selected.
ERO@EVROCS>SELECT dbms_metadata.get_ddl ('PROCEDURE'
2 ,'HI_THERE'
3 ,'ERO'
4 ) statement
5 FROM dual;
STATEMENT
---------------------------------------------------------------
CREATE OR REPLACE EDITIONABLE PROCEDURE "ERO"."HI_THERE"
AS
BEGIN
dbms_output.put_line ('Hello World');
END;
1 row selected.
CREATE OR REPLACE
VIEW dba_source
AS
SELECT OWNER, NAME, TYPE, LINE, TEXT, ORIGIN_CON_ID
FROM INT$DBA_SOURCE
;
SYS@EVROCS>SELECT s.text
2 FROM INT$DBA_SOURCE s
3 WHERE s.name = 'HI_THERE'
4 ORDER BY s.line
5 ;
no rows selected
CREATE OR REPLACE
VIEW int$dba_source
(owner
,name
,type
,type#
,line
,text
,sharing
,origin_con_id
)
AS
SELECT u.name
, o.name
, DECODE(o.type#
, 7, 'PROCEDURE'
, 8, 'FUNCTION'
, 9, 'PACKAGE'
,11, 'PACKAGE BODY'
,12, 'TRIGGER'
,13, 'TYPE'
,14, 'TYPE BODY'
,22, 'LIBRARY'
,87, 'ASSEMBLY'
,'UNDEFINED'
)
, o.type#
, s.line
, s.source
, DECODE(bitand(o.flags, 196608)
,65536 , 1
,131072, 1
,0
)
, TO_NUMBER(sys_context('USERENV', 'CON_ID'))
FROM sys."_CURRENT_EDITION_OBJ" o
, sys.source$ s
, sys.user$ u
WHERE o.obj# = s.obj#
AND o.owner# = u.user#
AND ( o.type# IN (7, 8, 9, 11, 12, 14, 22)
OR ( o.type# = 13
AND o.subname IS NULL
)
)
UNION ALL
SELECT u.name
, o.name
, 'JAVA SOURCE'
, o.type#
, s.joxftlno
, s.joxftsrc
, DECODE(bitand(o.flags, 196608)
,65536 , 1
,131072, 1
,0
)
, TO_NUMBER(sys_context('USERENV', 'CON_ID'))
FROM sys."_CURRENT_EDITION_OBJ" o
, x$joxscd s
, sys.user$ u
WHERE o.obj# = s.joxftobn
AND o.owner# = u.user#
AND o.type# = 28
;
SYS@EVROCS>SELECT u.user#
2 FROM sys.user$ u
3 WHERE u.name = 'ERO'
4 ;
USER#
---------------
111
1 row selected.
SYS@EVROCS>SELECT o.obj#
2 , o.name
3 , o.type#
4 , NVL(o.subname,'<<NULL>>') subname
5 FROM sys."_CURRENT_EDITION_OBJ" o
6 WHERE o.owner# = 111
7 AND o.name = 'HI_THERE'
8 ;
OBJ# NAME TYPE# SUBNAME
------ --------- ----- ---------
97193 HI_THERE 7 <<NULL>>
1 row selected.
SYS@EVROCS>SELECT s.source
2 FROM sys.source$ s
3 WHERE s.obj# = 97193
4 ORDER BY s.line
5 ;
SOURCE
---------------------------------------------
PROCEDURE hi_there
AS
BEGIN
dbms_output.put_line ('Hello World');
END;
5 rows selected.
SYS@EVROCS>SELECT SOURCE
2 FROM (
3 SELECT u.name u_name
4 , o.name o_name
5 , DECODE(o.type#
6 , 7, 'PROCEDURE'
7 , 8, 'FUNCTION'
8 , 9, 'PACKAGE'
9 ,11, 'PACKAGE BODY'
10 ,12, 'TRIGGER'
11 ,13, 'TYPE'
12 ,14, 'TYPE BODY'
13 ,22, 'LIBRARY'
14 ,87, 'ASSEMBLY'
15 ,'UNDEFINED'
16 )
17 , o.type#
18 , s.line
19 , s.source
20 , DECODE(bitand(o.flags, 196608)
21 ,65536 , 1
22 ,131072, 1
23 ,0
24 )
25 , TO_NUMBER(sys_context('USERENV', 'CON_ID')) u_env
26 FROM sys."_CURRENT_EDITION_OBJ" o
27 , sys.source$ s
28 , sys.user$ u
29 WHERE o.obj# = s.obj#
30 AND o.owner# = u.user#
31 AND ( o.type# IN (7, 8, 9, 11, 12, 14, 22)
32 OR ( o.type# = 13
33 AND o.subname IS NULL
34 )
35 )
36 UNION ALL
37 SELECT u.name
38 , o.name
39 , 'JAVA SOURCE'
40 , o.type#
41 , s.joxftlno
42 , s.joxftsrc
43 , DECODE(bitand(o.flags, 196608)
44 ,65536 , 1
45 ,131072, 1
46 ,0
47 )
48 , TO_NUMBER(sys_context('USERENV', 'CON_ID'))
49 FROM sys."_CURRENT_EDITION_OBJ" o
50 , x$joxscd s
51 , sys.user$ u
52 WHERE o.obj# = s.joxftobn
53 AND o.owner# = u.user#
54 AND o.type# = 28
55 )
56 WHERE o_name = 'HI_THERE'
57 ORDER BY line
58 ;
SOURCE
----------------------------------------------------------------------
PROCEDURE hi_there
AS
BEGIN
dbms_output.put_line ('Hello World');
END;
5 rows selected.
最佳答案
上周我有幸有机会与 Tom Kyte 交谈。
由于他是来自 AskTom 的 Tom,我就是这样做的:我问过他这个问题。
我解释了我上面写的东西,问他:“我做错了什么?”
他的回答简单明了:“可能什么都没有”。
他解释说,12.1.0.1 在数据字典 View 中有几个错误,因为突然他们必须从容器数据库中获取一部分数据,从插件数据库中获取一部分数据。
所以,汤姆得出结论,我可能遇到了一个软管错误。
尽管如此,由于没有人能够确认这种行为,而且由于我无法想象自己是唯一一个使用 12.1.0.1 数据库的人,所以我觉得一定是我做了什么让这个错误变得引人注目。
无论如何,现在我确定问题可能出在产品内部,我将停止进一步调查并升级到12.1.0.2。
现在,如果升级使问题消失,我将有信心在我重复 12.1.0.1 愚蠢之后一周后它不会再次出现。
25/02 编辑:
上周末按照我用于 12.1.0.1 的完全相同的步骤卸载了 12.1.0.1 并安装了 12.1.0.2。
问题没了。
所以看起来汤姆是对的(再一次)。
关于database - 为什么我的 pl sql 代码在 Oracle 12c 的数据字典中丢失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27880179/
我在 Ubuntu 10.04 LTS 上运行 Eclipse Galileo。今天 Ubuntu 在我身上崩溃了,重新启动后,我发现 Eclipse 已经完全失去了 Java Perspective
我使用配置了 sonata_user 的 SonataAdminBundle在 config.yml : sonata_user: impersonating: route:
我有 ubuntu 14.04 但它不见了 docker exec sudo docker exec -it ubuntu_bash bash 我希望在现有正在运行的 docker 容器中运行交互式
我正在使用 Ubuntu 8.04/32 位(作为虚拟机)。在一个不是 min 的项目上执行一些 make 时,我得到了错误: g++:/usr/lib/libstdc++.a: 没有这样的文件或目录
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我正在尝试获取有关我在 UIImagePicker 中选择的视频的一些数据。 因此,当它进入 UIImagePicker 委托(delegate)方法(如下)时,我知道我需要使用信息字典中的 UIIm
我的网站最近被可能的黑客行为删除了。我上传了备份的文件夹和数据库,但现在我的 View 没有显示。其他一切都有效。我想不出有什么变化,只是上传了几天前的备份。 这些字段在 admin/build/vi
我执行以下操作来设置我的 session ,这是有效的,因为 echo 出现了。但是当我转到下一页或另一页时, session 不存在吗?我做错了什么? $session_start(); if ($
我试图在 BigQuery 中使用这段代码,显然是从 GA 中获取数据,但 _TABLE_SUFFIX 似乎有问题。错误显示“错误:无法识别的名称:_TABLE_SUFFIX at [12:3]”您能
输入:8(2 5 6 9 10 2 7 4)预期输出:(2 7 9 9 12 5 7 6)实际输出:(2 7 9 9) 这是我的大学作业,也是我第一次在这里提问。我不知道为什么,但 10 没有扫描,有
$('div'); // 我在上面的代码中遇到错误。在检查 .js 代码时,我找不到名为 $ 的函数,但根据文档,应该有一个。 最佳答案 试试 http://ajax.googleapis.co
以下简单代码的输出对我来说有点奇怪。它错过了在控制台上打印的 0 到 100 之间的一些数字。 谁能解释一下为什么省略打印?我对并发编程完全陌生。 import java.util.concurren
我正在学习 xamarin 以构建移动应用程序,但我对 Xamarin 和移动应用程序一无所知。我打开了一个空白的移动应用程序,其中有“Hello world”示例并编辑了一些文本,但我的应用程序图标
我正在将一些值存储到 sqlite 数据库中。因此,数据是作为字符串从文本字段收集的,然后转换为 double 并持久化。 这是我试过的 NSDecimalNumber 答案; value.answe
我有一个奇怪的案例。突然,其中一个表中的一些记录(这么多记录)丢失了。首先,我认为这是由我的 PHP 脚本中的错误引起的。但是,我检查了一下,我的脚本中没有DELETE操作,只有UPDATE。有谁知道
我正在复制 NSString来自 NSDictionary进入本地NSString使用 [[NSString alloc] initWithString:] ,对其进行处理(删除一些字符),然后将其发
当保存在根文件夹中时,我的非常基本的 html 页面保持样式。为一个组创建了一个新文件夹,但是当我将页面移动到该文件夹时,它们似乎失去了与 css 文件的连接。 认为问题可能出在链接上,因为它现在
我需要使用 OpenCV 训练一些图像。但问题是,我找不到 opencv_createsamples 程序。我以正常方式安装了 OpenCV,因为我使用的是 Windows 7。这个 opencv_c
我有一个绑定(bind)到 JTable 的 ArrayList。之后 bindingGroup.unbind(); bindingGroup.bind(); (完成刷新数据)我丢失了表格单元格渲
所以基本上我们只是丢失了一个 keystore 和备份 keystore 。但是我们可能知道原始 keystore 的密码。 我的问题是,如果我们知道原始 keystore 的密码,我们可以重新生成
我是一名优秀的程序员,十分优秀!