SQL> SELECT OBJECT_ID,OBJECT_NAME FROM USER_OBJECTS;
OBJECT_ID OBJECT_NAME
-------------------------------------------------------------------------------------------------- 51147 PK_DEPT
51146 DEPT
51148 EMP
51149 PK_EMP
51150 BONUS
51151 SALGRADE
52613 D
52614 D1
52615 D3
52696 BIG
52717 XS------------------------ OBJECT_ID=52717
11 rows selected.
SQL> conn / as sysdba
Connected.
SQL> select col#,intcol#,name from col$ where obj#=52717;
COL# INTCOL# NAME
---------- ---------- ------------------------------
1 1 ID
2 2 NAME
0 3 SYS_C00003_12092313:06:51$----------原来的列名为C,被系统修了.
SQL> select cols from tab$ where obj#=71930;
COLS
----------
2 -----------------------系统的字段数目也发生了变化
SQL> update col$ set col#=intcol# where obj#=52717;
3 rows updated.
SQL> update tab$ set cols=cols+1 where obj#=52717;
1 row updated.
SQL> update col$ set name='AGE' where obj#=52717 and col#=3;
1 row updated.
SQL> update col$ set property=0 where obj#=52717;
3 rows updated.
SQL> commit;
这是网上找的,其中的#,$是什么呀?我直接复制过去报错,无法执行,
其中select col#,intcol#,name from col$ where obj#= 这里面的col#,intcol#, col$ obj#各代表什么呀?直接写这个不行好像。哪位大神知道?
------解决方案--------------------
直接复制过去报什么错误啊。
是权限不足还是全角半角的问题。
$#这些是oracle内部用的一些字段和表所带的标示,没什么不好的。