PowerDesigner生成SQL脚本时表名、字段名带引号问题
PowerDesigner生成SQL脚本时表名、字段名带引号问题
使用PowerDesigner生成数据库脚本时,表名一般会带引号。如下:
加引号是PL/SQL的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照ORACLE默认的设置建表,默认是全部大写,这样,在ORACLE数据库里的字段就如“Column_1”,如果你把引号去掉,ORACLE自动默认为全部大写,即“COLUMN_1”,所以不必担心,这段SQL在PL/SQL中执行的时候是没有任何问题的,如果不加引号,在PL/SQL会自动识别为大写。
这个问题是生成脚本格式的问题,我们可以尝试在DBMS配置文件中修改相应的格式设置来解决这个问题。在PowerDesigner中,选择Database->Edit current database,选择Script-->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为 “Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“Yes”,如下所示:
将“Yes”修改为“No”,点击【确定】按钮。在弹出的确认对话框中点击【确认】。
这样设置之后,生成SQL就不会带引号了。如下所示:
另:如果建表脚本中使用引号。增删改查时,表名、字段名也要加引号。另外,无法使用desc命令来查看表的结构。举例如下:
l 建表(SQL中的表名、字段名带引号):
create table "xxxx" (
"alarm_def_id" NUMBER(12) not null,
"alarm_type_id" CHAR(1) not null
constraint CKC_xxx check ("alarm_t
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
1 查询sql优化
1.1 选择最有效率的表名顺序(只在基于规则的优化器中有效ORACLE)
解析器按照从右到左的顺序处理from子句中的表名,因此from子句中写在最后的表(基础表driving table)将被最先处理。在from子句中包含多个表的情况下,你必须选择记录条数最少的表 ......
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是1对多的关系 A.ID => B.AID
......
--检测CPU压力的一个方法是计算运行状态下的工作进程数量,
--通过执行如下的DMV查询可以得到这个信息
SELECT COUNT(*) AS workers_waiting_for_cpu,t2.scheduler_id
from sys.dm_os_workers AS t1, sys.dm_os_schedulers AS t2
WHERE t1.state='RUNNABLE' AND
t1.scheduler_address = t2.scheduler_address A ......