1. sql 预编译的情况下怎么用nextval
1、首先要有createsequence或者createanysequence权限,createsequenceemp_sequenceINCREMENTBY1--每次加几个STARTWITH1--从1开始计数NOMAXVALUE--不设置最大值NOCYCLE--一直累加,不循环CACHE10;2、插入到表中,INSE
2. SQL语句在PL/SQL编译是从后往前执行,那真的执行的时候了大虾解释下
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
这是执行顺序
顺序查询:根据表的某个(些)字段重排记录,进行顺序查询时,要先排序以提高查询效率。
顺序查询,会以主键作为默认的索引进行查询,如果没有主键和索引,就以第一个字段,进行排序,进行查询。
索引查询:按照某个关键字(或其表达式)来建立记录的逻辑顺序。
索引查询,已索引的顺序为条件,找到索引对应的记录,得到查询的结果集。
先答这么多,明天我去问下DBA
3. sql语言用不用编译
不用
将指令直接输入其自带的“查询分析器”中运行就OK了
4. sql是解释型语言还是编译型语言
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
SQL从功能上可以分为3部分:数据定义、数据操纵和数据控制。
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。其特点是:
1、数据描述、操纵、控制等功能一体化。
2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。
3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理操作等均由系统自动完成。
4、语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。
5. SQLSERVER 什么时候重新编译执行计划
根据数据库新状态的不同,数据库中的某些更改可能导致执行计划效率降低或无效。SQL Server 将检测到使执行计划无效的更改,并将计划标记为无效。此后,必须为执行查询的下一个连接重新编译新的计划。导致计划无效的情况包括:
对查询所引用的表或视图进行更改(ALTER TABLE 和 ALTER VIEW)。
对执行计划所使用的任何索引进行更改。
对执行计划所使用的统计信息进行更新,这些更新可能是从语句(如 UPDATE STATISTICS)中显式生成,也可能是自动生成的。
删除执行计划所使用的索引。
显式调用 sp_recompile。
对键的大量更改(其他用户对由查询引用的表使用 INSERT 或 DELETE 语句所产生的修改)。
对于带触发器的表,插入的或删除的表内的行数显着增长。
使用 WITH RECOMPILE 选项执行存储过程。
为了使语句正确,或要获得可能更快的查询执行计划,大多数都需要进行重新编译。
在 SQL Server 2000 中,只要批处理中的语句导致重新编译,就会重新编译整个批处理,无论此批处理是通过存储过程、触发器、即席批查询,还是通过预定义的语句进行提交。在 SQL Server 2005 和更高版本中,只会重新编译批处理中导致重新编译的语句。由于这种差异,SQL Server 2000 和更高版本中的重新编译计数不可比较。另外,由于 SQL Server 2005 和更高版本扩展了功能集,因此它们具有更多类型的重新编译。
语句级重新编译有助于提高性能,因为在大多数情况下,只有少数语句导致了重新编译并造成相关损失(指 CPU 时间和锁)。因此,避免了批处理中其他不必重新编译的语句的这些损失。
SQL Server ProfilerSP:Recompile 跟踪事件报告语句级重新编译。此跟踪事件在 SQL Server 2000 中仅报告批处理重新编译。此外,将填充此事件的 TextData 列。因此,已不再需要 SQL Server 2000 中必须跟踪 SP:StmtStarting 或 SP:StmtCompleted 以获取导致重新编译的 Transact-SQL 文本的做法。
跟踪事件 SQL:StmtRecompile 报告语句级重新编译。此跟踪事件可用于跟踪和调试重新编译。SP:Recompile 仅针对存储过程和触发器生成,而SQL:StmtRecompile 则针对存储过程、触发器、即席批查询、使用 sp_executesql 执行的批处理、已准备的查询和动态 SQL 生成。
SP:Recompile 和 SQL:StmtRecompile 的 EventSubClass 列都包含一个整数代码,用以指明重新编译的原因。
6. java有没有方法将硬编译的sql直接转换成预编译类型的sql
你说的是防止sql注入的方式吗
“select * from test where name=?”; 参数是传入的 比直接传值要好 这样可以防止sql注入漏洞
7. 什么是SQL的编译环境
sql语句运行环境
像查询分析器
8. 为什么我PL/SQL工具中编译的SQL语句,不能显示中文
修改数据库的字符集。
在注册表里面修改为中文简体,就可以读出中文,但是要小心可能会造成Oracle出错。
或者在SQL Plus中设置alter session set nls_language='SIMPLIFIED CHINESE'
9. 怎么查看pl/sql的编译错误
可用第三方工具检查错误。 如以下存储过程: 其中第六行故意少写了一个分号。 然后执行后,会提示完成,这时可以去左边的树中找到这个存储过程,显示是有个红叉的。 这时,可以右键,选择编辑。 然后打开页面的最下方会显示如下信息。 此时鼠标双击信息的那一行,会在上方存储过程中以特殊颜色显示,这就说明,有特殊颜色的位置有错误,可以根据ORA-00933的错误号查询错误原因,并加以修改。 现在,如果可以后边的逗号补上,点执行,然后,下边会显示成功编译且左边的树红叉消除。