在Oracle中用shell封装SQL实例
时间: 2023-12-31 07:05:20 浏览: 115
在Oracle数据库中,可以使用Shell脚本来封装SQL语句,以便批量执行SQL语句或自动化执行SQL语句的任务。以下是一个使用Shell脚本封装Oracle SQL的示例:
```bash
#!/bin/bash
# 定义变量
DB_HOST="localhost"
DB_PORT="1521"
DB_SID="orcl"
DB_USER="scott"
DB_PASS="tiger"
# 执行SQL语句
sqlplus -S $DB_USER/$DB_PASS@$DB_HOST:$DB_PORT/$DB_SID << EOF
-- 创建表
CREATE TABLE employees (
employee_id NUMBER(6) NOT NULL,
first_name VARCHAR2(20) NOT NULL,
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
phone_number VARCHAR2(20),
hire_date DATE NOT NULL,
job_id VARCHAR2(10) NOT NULL,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
manager_id NUMBER(6),
department_id NUMBER(4)
);
-- 插入数据
INSERT INTO employees VALUES (100, 'Steven', 'King', 'steven.king@example.com', '515.123.4567', TO_DATE('1987-06-17', 'YYYY-MM-DD'), 'AD_PRES', 24000, NULL, NULL, 90);
INSERT INTO employees VALUES (101, 'Neena', 'Kochhar', 'neena.kochhar@example.com', '515.123.4568', TO_DATE('1989-09-21', 'YYYY-MM-DD'), 'AD_VP', 17000, NULL, 100, 90);
INSERT INTO employees VALUES (102, 'Lex', 'De Haan', 'lex.dehaan@example.com', '515.123.4569', TO_DATE('1993-01-13', 'YYYY-MM-DD'), 'AD_VP', 17000, NULL, 100, 90);
-- 查询数据
SELECT * FROM employees;
-- 结束SQL语句
EOF
```
在该脚本中,通过使用“<< EOF”和“EOF”来封装SQL语句。在“<< EOF”后面的所有内容都将被视为SQL语句,直到遇到“EOF”为止。在这个例子中,我们连接到名为“orcl”的Oracle数据库实例,并执行一个简单的SQL语句,以创建一个名为“employees”的表,并插入三行数据。然后,我们使用SELECT语句查询了表中的所有数据。您可以根据需要修改SQL语句以执行不同的任务。
阅读全文