3.2.3.9. SQLite
3.2.3.9.1. 虚拟表查询
虚拟表
DUAL
用于在 Oracle 数据库 中执行简单查询语法如下:select xxx from dual-- 转换前Oracle SQL: SELECT 5+ 3 FROM DUAL; SELECT '这是一个测试字符串' FROM DUAL; SELECT TO_CHAR(123)FROM DUAL; -- 转换后SQLite: SELECT 5+3 FROM (SELECT 1) AS DUAL; SELECT '这是一个测试字符串' FROM (SELECT 1) AS DUAL; SELECT TO_CHAR(123) FROM (SELECT 1) AS DUAL;
警告
SQL语句: select * from dual
转换后为 select *
,sqlite数据库执行会出错。
3.2.3.9.2. select … into …
select ... into ...
语句的作用是将查询结果存储到一个变量、文件或新表中,是一种非标准的SQL,可在PL/SQL中使用。
语法
SELECT select_expr_list INTO variable FROM from_list
示例
-- 转换前Oracle SQL:
select col1,col2 into @a1,@a2 from test_unisql_into_table;
select col1,col2 into b1,b2 from test_unisql_into_table;
-- 转换后SQLite:
SELECT `col1` AS `a1`,`col2` AS `a2` FROM `test_unisql_into_table`
SELECT `col1` AS `b1`,`col2` AS `b2` FROM `test_unisql_into_table`
警告
不支持 select * into ...
这种表达,需要确保 INTO 关键字前后的字段数量一致 。