用&符号前面的值查询 - 在Oracle中工作但在MySQL中不工作?

时间:2015-07-04 06:12:06

标签: mysql database oracle

在MySQL中,以下声明有效:

String temp=(String)m1.get(p1);     // 11

在Oracle中,以下声明有效:

mysql>insert into emp1(empno,empname,empsal,empcity) values (100,'vinay',10000,'USA');**

mysql> select * from emp1;
+-------+---------+--------+---------+
| empno | empname | empsal | empcity |
+-------+---------+--------+---------+
|   100 | vinay   |  10000 | USA     |
+-------+---------+--------+---------+

但这在MySQL中不起作用 - 为什么mysql> insert into emp1 values(&empno,'&empname',&empsal,'&empcity');** 可以预先设定值?

3 个答案:

答案 0 :(得分:6)

假设&符号为SQL*Plus substitution variables

这些是Oracle支持的,但不是MySQL支持的。

答案 1 :(得分:5)

MySQL的类似代码是这样的:

SET @empno = 100, @empname = 'vinay', @empsal = 10000, @empcity = 'USA'; 
insert into emp1 values(@empno,@empname,@empsal,@empcity);

请注意@'值中没有INSERT等。

如果要在不同的DBMS系统之间进行转换,则应该计划进行重要的重写。这只是Oracle和MySQL之间数百个差异之一。

答案 2 :(得分:1)

'&安培;'在Oracle中受支持但在MySQL中不支持,这就是它在MySQL中出现编译错误的原因。