基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
PREPARE
更新时间:2026-05-28 10:12:28
描述
该语句用于准备一个语句并为其指定一个名称,用于稍后引用该语句。可以使用 EXECUTE 执行 Prepared 语句,并使用 DEALLOCATE PREPARE 释放该语句。
说明
- Prepared 语句仅在当前会话中生效,不适用于其他会话。当会话结束时,所创建的 Prepared 语句不再存在。
- 在存储例程中创建的 Prepared 语句具有全局性,则在程序执行完毕后不会释放它。但是在存储程序上下文中的 Prepared 语句不能引用存储过程或函数的参数或局部变量,否则会导致该语句无法在程序外执行。
语法
PREPARE stmt_name FROM preparable_stmt
参数解释
| 参数 | 描述 |
|---|---|
| stmt_name | 指定准备语句的名称。语句名称不区分大小写。 |
| preparable_stmt | 指定要准备执行的 SQL 语句。该参数是字符串字面量或包含 SQL 语句文本的用户变量,文本必须表示单个语句,而不是多个语句。 |
Prepared 语句中允许使用的 SQL 语法
以下 SQL 语句可用作 Prepared 语句:
ALTER TABLE
ALTER USER
ANALYZE TABLE
CACHE INDEX
CALL
CHANGE MASTER
CHECKSUM {TABLE | TABLES}
COMMIT
{CREATE | DROP} INDEX
{CREATE | RENAME | DROP} DATABASE
{CREATE | DROP} TABLE
{CREATE | RENAME | DROP} USER
{CREATE | DROP} VIEW
DELETE
DO
FLUSH {TABLE | TABLES | TABLES WITH READ LOCK | HOSTS | PRIVILEGES
| LOGS | STATUS | MASTER | SLAVE | DES_KEY_FILE | USER_RESOURCES}
GRANT
INSERT
INSTALL PLUGIN
KILL
LOAD INDEX INTO CACHE
OPTIMIZE TABLE
RENAME TABLE
REPAIR TABLE
REPLACE
RESET {MASTER | SLAVE | QUERY CACHE}
REVOKE
SELECT
SET
SHOW BINLOG EVENTS
SHOW CREATE {PROCEDURE | FUNCTION | EVENT | TABLE | VIEW}
SHOW {MASTER | BINARY} LOGS
SHOW {MASTER | SLAVE} STATUS
SLAVE {START | STOP}
TRUNCATE TABLE
UNINSTALL PLUGIN
UPDATE
示例
obclient> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
Query OK, 0 rows affected
obclient> SET @a = 3;
Query OK, 0 rows affected
obclient> SET @b = 4;
Query OK, 0 rows affected
obclient> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
| 5 |
+------------+
1 row in set
说明
OceanBase 数据库在当前版本暂不支持交互客户端显式结果。