1.替换变量的好处
如果我们将要查询的变量的值写固定的话,那么对于不确定的查询是不友好的,因此根据实际的情况来确定查询的信息,所以产生了替换变量,用来临时存储有关的数据。使用替换变量不需要对要查询的变量固定写好,只需要根据实际的情况来查询某一条信息。
2.&替换变量
如果某个变量的前面使用了“&”符号,则表示该变量是一个替换变量。
例如:下面现在要根据学生的学号查询学生的信息。
替换变量可以使用的子句:
(1)WHERE子句可以使用替换变量;
(2)ORDER BY子句可以使用替换变量;
(3)列表达式子句可以使用替换变量;;
(4)表名子句可以使用替换变量;
(5)整个的SELECT中子句可以使用替换变量;
select *
from xsb
where sid='&id';
select * from XSB where sid='&id';
如果现在要按学生的某一属性column(学号,姓名等)进行分组并且将学生的这一属性column(学号,姓名等)信息输出,那该怎么做呢?
答:可以分别使用两个&,如下:
select &column
from XSB
group by &column;
但是注意,这样的话,分别使用两个&,那么意味着我们要输入两次并且这里的column指的是同一个意思,根据输入的column进行查询,并且查询的结果根据分组输出。虽然这样做可以,但是容易在输入信息的时候出错,所以为了避免这种输入同样的信息而出错,使用两个连续的“&&”符号。
select &&column
from XSB
group by &column;
这样的话,我们只需要输入一次,当然这个前提是输入的两次信息必须是一样的。
4.DEFINE定义变量和ACCEPT编制用户提示
(1)DEFINE定义变量
使用DEFINE可以用来创建一个数据类型为CHAR用户定义的变量。使用UNDEFINE可以清除定义的变量。
格式:DEFINE[<变量名>]=[<变量值>]。
(2)ACCEPT编制用户提示
使用ACCEPT可以编制一个用户提示,用来提示用户进行的操作。
ACCEPT <变量名> [<数据类型>] [FORMAT<格式模式>]
[PROMPT<提示信息>][HIDE]
ACCEPT profession PROMPT'请输入学生的专业: '
select *
from XSB
where profession='&profession';
当&x输入为空时报如下错ORA-06550: 第 5 行, 第 9 列:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
1、字符串截取:substr
substr(string, start_position, [length]),其
中
,string是元字符串,start_position为开始位置(注意首位从0开始),length是可选项,表示子字符串的位数。
eg 1、substr('ABCDEFG', 0); -- 返回结果是:ABCDEFG,从0位开始截取后面所有。
eg 2、s
替换
变量
是指在进行数据
查询
或更新时,由用户自己输入数据,在
ORACLE
中
用&标记,比如
select ename,job,sal,hiredate from emp where sal>&inputjob在通过SQL Developer执行时会出现输入提示框,这样我们就可以通过自己输入需要
查询
的sal>的值进行
查询
上面的输入数据时整,那么如果是字符串怎么办呢?比如ename=&inputen
Oracle
:一次性
替换
某列
中
的所有值场景引入
Oracle
/ PLSQL: REPLACE 函数适用版本示例
查询
更新
假设,我们需要将原 FULL_CODE 列
中
的值:
FULL_CODE
----------
TREE.ANLYS
TREE.LOG_MGT
TREE.LOG_MGT.ERR_LOG
TREE.LOG_MGT.OPS_LOG
TREE.SYS_MGT
TREE...
利用它可以达到创建通用脚本的目的
利用它可以达到和用户交互,故在SQL *Plus
中
又称交互式命令
替换
变量
的格式式在
变量
名称前加一个&,以便在运行SQL命令时提示用户输入
替换
数据,然后按输入数据运行SQL命令
(1)& :“&
变量
名”eg:&nam...
```
oracle
CREATE OR REPLACE PROCEDURE replace_string(tbl_name IN VARCHAR2, col_name IN VARCHAR2, str_to_replace IN VARCHAR2, replacement_str IN VARCHAR2, success OUT NUMBER) AS
BEGIN
EXECUTE IMMEDIATE 'UPDATE ' || tbl_name || ' SET ' || col_name || ' = REPLACE(' || col_name || ', ''' || str_to_replace || ''', ''' || replacement_str || ''')';
success := SQL%ROWCOUNT;
使用方法:
```
oracle
DECLARE
v_success NUMBER;
BEGIN
replace_string('my_table', 'my_col', 'old_str', 'new_str', v_success);
DBMS_OUTPUT.PUT_LINE('Replaced ' || v_success || ' rows.');
注意,上述存储过程
中
使用了动态 SQL 语句,需要使用 `EXECUTE IMMEDIATE` 语句来执行。同时,存储过程
中
的字符串需要使用单引号括起来,因此需要在字符串
中
使用两个单引号来表示一个单引号。
关于NameError: name ‘sns‘ is not defined->ModuleNotFoundError: No module named ‘seaborn‘错误提示
14271
关于NameError: name ‘sns‘ is not defined->ModuleNotFoundError: No module named ‘seaborn‘错误提示
m0_75105918:
关于命令行窗口输入pip list出错的一些解决办法
三百886:
Opencv中的erode和dilate(腐蚀和膨胀-python实现)
Kamen Black君:
Opencv中的erode和dilate(腐蚀和膨胀-python实现)
Kamen Black君:
手写体数字识别+界面
Keep_Trying_Go:
树莓派上报错OSError: [Errno 74] Bad message: ‘/home/pi/.local/lib/python3.9/site-package/potobuf-4.23.0...
基于darknet框架+yolov3训练自己的数据集