最近學習MVC,想連接配接oracle資料庫,在建立實體資料模型的時候出錯~忘了給錯誤截圖了~ 提示 SYS.all_ARGUMENT$的錯誤 經過查詢發現是系統的一個視圖沒有了,于是經過以下兩個步驟完成了視圖的建立:
建立表 SYS.ARGUMENT$
登入sys as sysdba之後執行以下指令
create table SYS.ARGUMENT$
2 (
3 OBJ# NUMBER not null,
4 PROCEDURE$ VARCHAR2(30),
5 OVERLOAD# NUMBER not null,
6 PROCEDURE# NUMBER,
7 POSITION# NUMBER not null,
8 SEQUENCE# NUMBER not null,
9 LEVEL# NUMBER not null,
10 ARGUMENT VARCHAR2(30),
11 TYPE# NUMBER not null,
12 CHARSETID NUMBER,
13 CHARSETFORM NUMBER,
14 DEFAULT# NUMBER,
15 IN_OUT NUMBER,
16 PROPERTIES NUMBER,
17 LENGTH NUMBER,
18 PRECISION# NUMBER,
19 SCALE NUMBER,
20 RADIX NUMBER,
21 DEFLENGTH NUMBER,
22 DEFAULT$ LONG,
23 TYPE_OWNER VARCHAR2(30),
24 TYPE_NAME VARCHAR2(30),
25 TYPE_SUBNAME VARCHAR2(30),
26 TYPE_LINKNAME VARCHAR2(128),
27 PLS_TYPE VARCHAR2(30)
28 )
29 tablespace SYSTEM
30
30 pctfree 10
31 pctused 40
32 initrans 1
33 maxtrans 255
34 storage
35 (
36
36 initial 16K
37 minextents 1
38 maxextents unlimited
39 )
然後建立視圖
CREATE OR REPLACE VIEW SYS.ALL_ARGUMENTS
2 (
3 OWNER,
4 OBJECT_NAME,
5 PACKAGE_NAME,
6 OBJECT_ID,
7 OVERLOAD,
8 ARGUMENT_NAME,
9 POSITION,
10 SEQUENCE,
11 DATA_LEVEL,
12 DATA_TYPE,
13 DEFAULT_VALUE,
14 DEFAULT_LENGTH,
15 IN_OUT,
16 DATA_LENGTH,
17 DATA_PRECISION,
18 DATA_SCALE,
19 RADIX,
20 CHARACTER_SET_NAME,
21 TYPE_OWNER,
22 TYPE_NAME,
23 TYPE_SUBNAME,
24 TYPE_LINK,
25 PLS_TYPE,
26 CHAR_LENGTH,
27 CHAR_USED,
28 SUBPROGRAM_ID
29 )
30 AS
31 SELECT
32 u.name,
33 NVL(a.PROCEDURE$,o.name),
34 DECODE(a.PROCEDURE$,NULL,NULL, o.name),
35 o.obj#,
36 DECODE(a.overload#,0,NULL,a.overload#),
37 a.argument,
38 a.position#,
39 a.SEQUENCE#,
40 a.LEVEL#,
41 DECODE(a.TYPE#,
42 0, NULL,
43 1, DECODE(a.charsetform, 2, 'NVARCHAR2', 'VARCHAR2'),
44 2, DECODE(a.scale, -127, 'FLOAT', 'NUMBER'),
45 3, 'NATIVE INTEGER',
46 8, 'LONG',
47 9, DECODE(a.charsetform, 2, 'NCHAR VARYING', 'VARCHAR'),
48 11, 'ROWID',
49 12, 'DATE',
50 23, 'RAW',
51 24, 'LONG RAW',
52 29, 'BINARY_INTEGER',
53 69, 'ROWID',
54 96, DECODE(a.charsetform, 2, 'NCHAR', 'CHAR'),
55 100, 'BINARY_FLOAT',
56 101, 'BINARY_DOUBLE',
57 102, 'REF CURSOR',
58 104, 'UROWID',
59 105, 'MLSLABEL',
60 106, 'MLSLABEL',
61 110, 'REF',
62 111, 'REF',
63 112, DECODE(a.charsetform, 2, 'NCLOB', 'CLOB'),
64 113, 'BLOB', 114, 'BFILE', 115, 'CFILE',
65 121, 'OBJECT',
66 122, 'TABLE',
67 123, 'VARRAY',
68 178, 'TIME',
69 179, 'TIME WITH TIME ZONE',
70 180, 'TIMESTAMP',
71 181, 'TIMESTAMP WITH TIME ZONE',
72 231, 'TIMESTAMP WITH LOCAL TIME ZONE',
73 182, 'INTERVAL YEAR TO MONTH',
74 183, 'INTERVAL DAY TO SECOND',
75 250, 'PL/SQL RECORD',
76 251, 'PL/SQL TABLE',
77 252, 'PL/SQL BOOLEAN',
78 'UNDEFINED'),
79 DEFAULT$,
80 deflength,
81 DECODE(in_out,NULL,'IN',1,'OUT',2,'IN/OUT','Undefined'),
82 LENGTH,
83 PRECISION#,
84 DECODE(a.TYPE#, 2, scale, 1, NULL, 96, NULL, scale),
85 radix,
86 DECODE(a.charsetform, 1, 'CHAR_CS',
87 2, 'NCHAR_CS',
88 3, NLS_CHARSET_NAME(a.charsetid),
89 4, 'ARG:'||a.charsetid),
90 a.type_owner,
91 a.type_name,
92 a.type_subname,
93 a.type_linkname,
94 a.pls_type,
95 DECODE(a.TYPE#, 1, a.scale, 96, a.scale, 0),
96 DECODE(a.TYPE#,
97 1, DECODE(bitand(a.properties, 128), 128, 'C', 'B'),
98 96, DECODE(bitand(a.properties, 128), 128, 'C', 'B'), 0),
99 a.PROCEDURE#
100 FROM obj$ o,argument$ a,USER$ u
101 WHERE o.obj# = a.obj#
102 AND o.owner# = u.USER#
103 AND (owner# = USERENV('SCHEMAID')
104 OR EXISTS
105 (SELECT NULL FROM v$enabledprivs WHERE priv_number IN (-144,-141))
106 OR o.obj# IN (SELECT obj# FROM sys.objauth$ WHERE Grantee# IN
107 (SELECT kzsrorol FROM x$kzsro) AND privilege# = 12))
108 order by o.obj#,a.position#
OK成功~ 希望對迷途中的人們有所幫助~
參考網址:
http://qc.embarcadero.com/wc/qcmain.aspx?d=26409
http://www.itpub.net/forum.php?mod=viewthread&action=printable&tid=1327468
http://space.itpub.net/3090/viewspace-670782
http://hi.baidu.com/mybaidu/blog/item/777c8acbd2ae7ef653664f43.html
最後補充一句
ITPUB論壇
這個論壇真尼瑪的流氓啊 老紙複制語句都加上好多東西 還得一點點的删掉 我草~
轉載于:https://blog.51cto.com/2510495/829555