我从SQL SERVER 2000里面导到ORACLE数据库 用的SQL SERVER 2000的DTS工具 创建的模式是"SYSTEM"."t_user" 后来在用到这个表的时候 每次都要加表空间前缀 而且表名称都要加“”,为了解决这个
CREATE OR REPLACE PROCEDURE SYSTEM.DFSDFS AS
cursor c_mycursor is
SELECT TABLE_NAME FROM ALL_TAB_COMMENTS WHERE OWNER = 'SYSTEM' AND
TABLE_TYPE = 'TABLE' AND TABLE_NAME <> UPPER(TABLE_NAME) ;
TABLENAME1 VARCHAR2(100);
str VARCHAR2(100);
begin
open c_mycursor;
loop
begin
fetch c_mycursor into TABLENAME1;
exit when c_mycursor%notfound;
str:='alter table system."'||TABLENAME1||'" rename to ' || TABLENAME1;
execute immediate str ; end;
end loop;
close c_mycursor;
exception
when others then
rollback;
end;
我用这个把表名称都处理了
可是 我在点击表 然后选择“显示DDL的相关性”导出的语句怎么还是CREATE TABLE "SYSTEM"."T_USER"
我看了下 如果我创建一个临时表CREATE TABLE SYSTEM.T_CESHI用的是不加引号的方式 在“显示DDL的相关性”后创建语句还是CREATE TABLE "SYSTEM"."T_CESHI"
这是怎么回事 有人明白的帮我解答下
CREATE OR REPLACE PROCEDURE SYSTEM.DFSDFS AS
cursor c_mycursor is
SELECT TABLE_NAME FROM ALL_TAB_COMMENTS WHERE OWNER = 'SYSTEM' AND
TABLE_TYPE = 'TABLE' AND TABLE_NAME <> UPPER(TABLE_NAME) ;
TABLENAME1 VARCHAR2(100);
str VARCHAR2(100);
begin
open c_mycursor;
loop
begin
fetch c_mycursor into TABLENAME1;
exit when c_mycursor%notfound;
str:='alter table system."'||TABLENAME1||'" rename to ' || TABLENAME1;
execute immediate str ; end;
end loop;
close c_mycursor;
exception
when others then
rollback;
end;
我用这个把表名称都处理了
可是 我在点击表 然后选择“显示DDL的相关性”导出的语句怎么还是CREATE TABLE "SYSTEM"."T_USER"
我看了下 如果我创建一个临时表CREATE TABLE SYSTEM.T_CESHI用的是不加引号的方式 在“显示DDL的相关性”后创建语句还是CREATE TABLE "SYSTEM"."T_CESHI"
这是怎么回事 有人明白的帮我解答下
SELECT TABLE_NAME FROM ALL_TAB_COMMENTS WHERE OWNER = 'SYSTEM' AND
TABLE_TYPE = 'TABLE' AND TABLE_NAME = UPPER(TABLE_NAME) ;
CREATE TABLE "SYSTEM"."T_CESHI"
与
CREATE TABLE SYSTEM.T_CESHI
有没有区别两种表 我在 select * from SYSTEM.T_CESHI 这个语句中都可以查询出来
这是oracle 的标准规范像mssql 的SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[c_bill](
[billcode] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[billname] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[serialtype] [varchar](30) COLLATE Chinese_PRC_CI_AS NOT NULL,
[serialno] [numeric](20, 0) NOT NULL,
[serialdate] [datetime] NULL,
CONSTRAINT [pk_c_bill] PRIMARY KEY CLUSTERED
(
[billcode] ASC
) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
我目前想把临时表 存储过程的创建语句导出来 我是问
CREATE TABLE "SYSTEM"."T_CESHI"
与
CREATE TABLE SYSTEM.T_CESHI
有没有区别
哪个用起来一定没问题
SQL> create table 'aa' (id number(10));
create table 'aa' (id number(10))
ORA-00903: invalid table name
SQL> create table "aa" (id number(10));
Table created
SQL> select * from aa;
select * from aa
ORA-00942: table or view does not exist
SQL> select * from "aa";
ID
-----------
SQL> drop table "aa";
Table dropped
SQL> create table aa (id number(10));
Table created
SQL> select * from aa;
ID
-----------
SQL> select * from AA;
ID
-----------
SQL> select * from "AA";
ID
-----------
SQL> select * from "aa";
select * from "aa"
ORA-00942: table or view does not exist
SQL>
目前我把存储过程语句创建语句导出来 用的就是那个”显示对象DDL“ 然后CREATE里面就出现双引号的"SYSTEM"."T_CESHI"这种模式了 还有其他方法把DDL创建语句导出来吗
我用的就是plsql developer啊 我刚才说的”显示对象DDL“是ORACLE数据库点击表名然后得选项 我刚才看
plsql developer里了 好像在SYSTEM/OBJECTS/TABLES下面 然后选择表名字 点DBMS_metddate选择DDL也可以显示出来建表语句 不过那里的也同样是 create table "SYSTEM"."T_CESHI"这种模式的 我就那么了 我创建表的时候是create table SYSTEM.T_CESHI这样的 导出DDL怎么就变成create table "SYSTEM"."T_CESHI"这种了呢
这里面的.view是什么啊 view不是视图吗
当然你在table列表里右键点view也能弹出这个窗口.
如果是中文版可以能叫查看吧.
中文版应该是
文件->新建->命令窗口
与
CREATE TABLE SYSTEM.T_CESHI
有没有区别-----------------
有区别的,如果不加引号,默认全部是大写,如果在引号里面,可以为小写,oracle不会自动转换
sql>
如果是中文版可以能叫查看吧.“这个里面找到了 呵呵