PowerDesigner生成的ORACLE 建表脚本中去掉小写对象的引号

PowerDesigner小写表名问题
使用PowerDesigner设计数据库时,默认情况下所有表名和字段名会自动转换为大写并用引号包裹。本文介绍如何调整设置以避免此现象。
这次用pd设计数据库,刚开始没注意,所有的表名和字段名称都是小写字母,结果生成的脚本中所有的对象都被加了引号,那么多表和字段我可不愿意挨个改,所以找找有没有解决方法,结果真被找到了(好像pd默认的都是只支持大写,小写的表名或者字段都会自动在脚本上加引号
 

  Database->Edit current database->Script->Sql->Format ,有一项 CaseSensitivityUsingQuote ,它的 comment “Determines if the case sensitivity for identifiers is managed using double quotes” ,表示是否适用双引号来规定标识符的大小写,可以看到右边的 values 默认值为 “YES”, 改为 “No” 即可!
<think> 我们已知用户现在的问题:在连接Oracle数据库后,如何打开数据库并创一张。 注意:在Oracle中,“打开数据库”通常是指启动数据库实例和打开数据库(如果数据库处于关闭状态),但根据上下文,用户连接后通常数据库已经是打开的(因为用户已经连接上了)。所以这里用户可能是指“使用”(即选择)某个数据库(实际上在Oracle中,一个实例可以挂载一个数据库,连接后就已经在特定的数据库上了)。因此,我们主要关注如何创。 步骤: 1. 连接到Oracle数据库(用户已经完成连接)。 2. 确保当前用户有创的权限,并且选择要在哪个空间中创(如果没有特殊要求,可以使用默认空间)。 3. 编写创的SQL语句并执行。 根据引用[1]中提到的创空间的例子,我们可能需要先创空间(可选步骤,如果用户没有现成的空间可以使用),但用户问题中没有要求创空间,所以我们可以假设已经有可用的空间。 创的基本语法: ```sql CREATE TABLE table_name ( column1 datatype [constraint], column2 datatype [constraint], ... [table_constraint] ) [TABLESPACE tablespace_name]; ``` 示例:创一个名为“employees”的,包含id(主键)、name、salary等字段,并指定空间(可选,如果不指定则使用用户的默认空间)。 详细步骤: 1. 登录到Oracle数据库(以SQL*Plus或其他客户端工具为例)。 2. 执行创的SQL语句。 示例代码: ```sql -- 创,如果不指定空间,则使用当前用户的默认空间 CREATE TABLE employees ( emp_id NUMBER(10) PRIMARY KEY, emp_name VARCHAR2(100) NOT NULL, salary NUMBER(10, 2), hire_date DATE ); ``` 如果用户想要指定空间(例如,引用[1]中创的test_data空间),可以这样写: ```sql CREATE TABLE employees ( emp_id NUMBER(10) PRIMARY KEY, emp_name VARCHAR2(100) NOT NULL, salary NUMBER(10, 2), hire_date DATE ) TABLESPACE test_data; ``` 注意: - 需要确保空间test_data存在(如引用[1]所示,已经创了test_data空间)。 - 数据类型:Oracle中常用的数据类型有NUMBER, VARCHAR2, DATE等。 - 约束:可以定义列级约束(如PRIMARY KEY, NOT NULL)或级约束。 另外,如果用户需要创的同时添加注释,可以使用COMMENT语句。 示例:为添加注释 ```sql COMMENT ON TABLE employees IS '员工信息'; ``` 为列添加注释: ```sql COMMENT ON COLUMN employees.emp_id IS '员工ID'; COMMENT ON COLUMN employees.emp_name IS '员工姓名'; COMMENT ON COLUMN employees.salary IS '员工薪资'; COMMENT ON COLUMN employees.hire_date IS '入职日期'; ``` 完整步骤: 1. 连接数据库(用户已完成)。 2. 创(可能需要先切换到目标用户模式,如果当前用户不是要创的用户,需要指定模式名,如:CREATE TABLE scott.employees ...)。 3. 添加注释(可选)。 因此,我们给出以下步骤: ### 连接Oracle后创的方法 #### 步骤1:确保已连接到目标数据库 使用SQL*Plus或其他客户端连接Oracle数据库,连接后默认就在当前用户的模式(schema)下。 #### 步骤2:创 执行`CREATE TABLE`语句创结构,以下是一个完整示例: ```sql -- 创(指定空间,可选) CREATE TABLE employees ( emp_id NUMBER(10) CONSTRAINT pk_emp PRIMARY KEY, -- 主键约束 emp_name VARCHAR2(100) NOT NULL, -- 非空约束 salary NUMBER(10, 2), -- 薪资,两位小数 hire_date DATE DEFAULT SYSDATE, -- 默认值为当前日期 department_id NUMBER(4) ) TABLESPACE test_data; -- 指定空间(如果不需要,可去掉TABLESPACE子句) ``` > 📌 说明: > - 空间`test_data`需要提前创(如引用[1]所示)[^1],若不指定空间则使用当前用户的默认空间 > - `DEFAULT SYSDATE`示当插入记录时如果不指定hire_date,则默认为系统当前日期 #### 步骤3:(可选)添加和列注释 ```sql -- 注释 COMMENT ON TABLE employees IS '存储员工基本信息'; -- 列注释 COMMENT ON COLUMN employees.emp_id IS '员工编号,主键'; COMMENT ON COLUMN employees.emp_name IS '员工姓名'; COMMENT ON COLUMN employees.salary IS '员工薪资'; COMMENT ON COLUMN employees.hire_date IS '入职日期'; COMMENT ON COLUMN employees.department_id IS '所属部门ID'; ``` #### 验证创结果 ```sql -- 查看结构 DESC employees; -- 或查询数据字典 SELECT column_name, data_type, nullable, data_default FROM user_tab_columns WHERE table_name = 'EMPLOYEES'; ``` #### 注意事项: 1. **权限要求**:当前用户必须具有`CREATE TABLE`系统权限,以及指定空间的配额(如果指定了空间) 2. **命名规范**:名和列名遵循Oracle的命名规则(字母开头,可包含字母、数字、_、$、#) 3. **大小写处理**:Oracle默认将对象名转换为大写,如需保留小写需用双引号包裹(不推荐) 4. **约束管理**:主键约束也可单独定义为级约束(示例中为列级约束) ```mermaid graph TD A[连接到Oracle数据库] --> B[编写CREATE TABLE语句] B --> C[执行创命令] C --> D[添加注释?] D -->|是| E[执行COMMENT语句] D -->|否| F[完成] E --> F ``` §§相关问题§§ 1. Oracle中如何修改已创结构? 2. 如何查看用户拥有的所有? 3. Oracle空间的作用是什么?如何创空间? 4. 如何为Oracle添加索引以提高查询性能? 5. 如何在Oracle中备份单张的数据? </think> ### 连接Oracle后打开数据库并创的方法 在Oracle中,"打开数据库"通常指数据库实例已启动且数据库状态为OPEN(因为用户已成功连接)。以下是创的完整步骤: #### 📌 步骤1:连接数据库 使用SQL*Plus或其他客户端工具连接(已实现): ```bash sqlplus username/password@hostname:port/service_name ``` #### 📌 步骤2:验证数据库状态 ```sql SQL> SELECT status FROM v$instance; ``` 输出应为 `OPEN`(若为MOUNTED状态需手动打开)[^1] #### 📌 步骤3:创空间(可选) 若需专用存储空间,先创空间: ```sql CREATE TABLESPACE user_data DATAFILE '/u01/app/oracle/oradata/ORCL/user_data01.dbf' SIZE 100M AUTOEXTEND ON; ``` > 💡 引用[1]中的空间创语法[^1] #### 📌 步骤4:创结构 ```sql CREATE TABLE employees ( employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(50) NOT NULL, last_name VARCHAR2(50) NOT NULL, hire_date DATE DEFAULT SYSDATE, salary NUMBER(8,2) CHECK(salary > 0), department_id NUMBER(4) ) TABLESPACE user_data; -- 可省略使用默认空间 ``` **关键参数说明**: - `NUMBER(p,s)`:数值类型(精度,小数位) - `VARCHAR2(n)`:变长字符串 - `PRIMARY KEY`:主键约束 - `DEFAULT`:默认值 - `CHECK`:数据校验 #### 📌 步骤5:添加注释(推荐) ```sql COMMENT ON TABLE employees IS '员工基本信息'; COMMENT ON COLUMN employees.salary IS '月薪(单位:元)'; ``` #### 📌 步骤6:验证创结果 ```sql -- 查看结构 DESC employees; -- 查询数据字典 SELECT table_name, tablespace_name FROM user_tables WHERE table_name = 'EMPLOYEES'; ``` ```mermaid graph TD A[连接数据库] --> B[验证实例状态为OPEN] B --> C{需要专用空间?} C -->|是| D[创空间] C -->|否| E[创结构] D --> E E --> F[添加/列注释] F --> G[验证创结果] ``` #### ️ 注意事项 1. **权限要求**:用户需有 `CREATE TABLE` 权限和空间配额 2. **命名规范**: - 名/列名长度 ≤ 30字节 - 禁止使用SQL关键字(如SELECT, WHERE) - 推荐使用下划线命名法(如employee_id) 3. **约束管理**: - 主键确保唯一性 - `NOT NULL` 强制数据完整性 - 外键需引用已存在的(示例未展示) > 📌 最佳实践:议使用PowerDesigner等工具设计结构(如引用[2]所示),再生成DDL脚本[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值