c mvc访问oracle,VS2010MVC连接oracle 建立实体数据模型

博客讲述了在学习MVC过程中遇到Oracle数据库视图`SYS.ALL_ARGUMENT$`缺失的问题,通过创建`SYS.ARGUMENT$`表和`SYS.ALL_ARGUMENTS`视图解决了问题。详细步骤包括创建表和视图的SQL语句,以及视图的定义。该博客旨在帮助遇到类似问题的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习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成功~ 希望对迷途中的人们有所帮助~

参考网址:

最后补充一句

ITPUB论坛

这个论坛真尼玛的流氓啊 老纸复制语句都加上好多东西 还得一点点的删掉 我草~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值