VS2010MVC連接oracle 建立實體數據模型

最近學習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, /* OWNER */
33          NVL(a.PROCEDURE$,o.name), /* OBJECT_NAME */
34          DECODE(a.PROCEDURE$,NULL,NULL, o.name), /* PACKAGE_NAME */
35          o.obj#, /* OBJECT_ID */
36          DECODE(a.overload#,0,NULL,a.overload#), /* OVERLOAD */
37          a.argument, /* ARGUMENT_NAME */
38          a.position#, /* POSITION */
39          a.SEQUENCE#, /* SEQUENCE */
40          a.LEVEL#, /* DATA_LEVEL */
41          DECODE(a.TYPE#,  /* DATA_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$, /* DEFAULT_VALUE */
80          deflength, /* DEFAULT_LENGTH */
81          DECODE(in_out,NULL,'IN',1,'OUT',2,'IN/OUT','Undefined'), /* IN_OUT*/
82          LENGTH, /* DATA_LENGTH */
83          PRECISION#, /* DATA_PRECISION */
84          DECODE(a.TYPE#, 2, scale, 1, NULL, 96, NULL, scale), /* DATA_SCALE*/
85          radix, /* RADIX */
86          DECODE(a.charsetform, 1, 'CHAR_CS',           /* CHARACTER_SET_NAME*/
87                                2, 'NCHAR_CS',
88                                3, NLS_CHARSET_NAME(a.charsetid),
89                                4, 'ARG:'||a.charsetid),
90          a.type_owner, /* TYPE_OWNER */
91          a.type_name, /* TYPE_NAME */
92          a.type_subname, /* TYPE_SUBNAME */
93          a.type_linkname, /* TYPE_LINK */
94          a.pls_type, /* PLS_TYPE */
95          DECODE(a.TYPE#, 1, a.scale, 96, a.scale, 0), /* CHAR_LENGTH */
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), /*CHAR_USED */
99          a.PROCEDURE# /* SUBPROGRAM ID */
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論壇

這個論壇真尼瑪的流氓啊 老紙複製語句都加上好多東西 還得一點點的刪掉 我草~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章