关于Oracle DB中SQL Script的注释 REM -- / /

本文详细介绍了OracleDB中SQLScript的注释语法,包括单行注释(REM、--)和多行注释(/*...*/), 并解释了REM与--的区别及在PL/SQL中的适用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                Oracle DB中SQL Script注释的语法
   REM Single line comment    -- Single line comment   /* Single line comment */   /*      Multi Line     comment   */

补充:REM是REMARK的缩写


那么REM--的区别是什么?

--或者/* */可以用于PL/SQL,但REM[ark]不可以。

下边这段可以在SQL*PLUS中执行成功

REM comment-- comment/* comment */begin   DBMS_OUTPUT.PUT_LINE('Test'); --comment   DBMS_OUTPUT.PUT_LINE('Test'); /* comment */end; /
但下边这段就不行
begin   DBMS_OUTPUT.PUT_LINE('Test'); REM commentend; /begin   REM comment   DBMS_OUTPUT.PUT_LINE('Test');end; /

11.2 documentation on all comment types 关于注释有很清楚的说明。

You can enter comments in a script in three ways:

  • using the SQL*Plus REMARK command for single line comments.

  • using the SQL comment delimiters /*... */ for single or multi-line comments.

  • using ANSI/ISO (American National Standards Institute/International Standards Organization) comments - - for single line comments.

转载请注明出处: http://blog.youkuaiyun.com/pan_tian/article/details/7745666

======EOF======


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

``` @echo off setlocal enabledelayedexpansion REM 刷新文件时间戳 forfiles /p "D:\Akaoqin" /m "card_number.txt" /c "cmd /c echo @FILE" REM 创建日志文件 set "LOG_FILE=export_log.txt" echo [%date% %time%] [INFO] 导出开始 > %LOG_FILE% REM 配置参数 set "OUTPUT_DIR=D:\Akaoqin\export_script\output_csv" set "CARD_FILE=D:\Akaoqin\card_number.txt" set "ORACLE_USER=lc30db" set "ORACLE_PASSWORD=lc30db" set "ORACLE_DB=172.1.200.221:1521/afc" REM 检查必要文件是否存在 if not exist "%CARD_FILE%" ( echo [%date% %time%] [ERROR] 卡号文件 %CARD_FILE% 不存在! >> %LOG_FILE% echo 错误:卡号文件不存在,按任意键退出... pause exit /b 1 ) REM 创建输出目录 if not exist "%OUTPUT_DIR%" ( mkdir "%OUTPUT_DIR%" 2>> %LOG_FILE% || ( echo [%date% %time%] [ERROR] 无法创建目录 %OUTPUT_DIR% >> %LOG_FILE% echo 错误:创建输出目录失败,按任意键退出... pause exit /b 1 ) ) REM 数据库连接测试 echo [%date% %time%] [INFO] 正在测试数据库连接... >> %LOG_FILE% ( echo WHENEVER SQLERROR EXIT SQL.SQLCODE; echo SELECT 1 FROM DUAL; echo EXIT; ) > temp_query.sql sqlplus -L %ORACLE_USER%/%ORACLE_PASSWORD%@%ORACLE_DB% @temp_query.sql >> %LOG_FILE% 2>&1 set "SQLPLUS_ERRORLEVEL=%ERRORLEVEL%" del temp_query.sql if not "%SQLPLUS_ERRORLEVEL%"=="0" ( echo [%date% %time%] [ERROR] 数据库连接测试失败,错误代码: %SQLPLUS_ERRORLEVEL% >> %LOG_FILE% echo 错误:数据库连接失败,请检查连接参数... pause exit /b 1 ) REM 遍历卡号文件 for /f "usebackq delims=" %%a in ("%CARD_FILE%") do ( set "CARD=%%a" set "CARD=!CARD:'='''!" REM 转义单引号 if not "!CARD!"=="" ( echo [%date% %time%] [INFO] 正在处理卡号: !CARD! >> %LOG_FILE% REM 清理卡号中的非法字符 set "SAFE_CARD=!CARD:/=_!" set "SAFE_CARD=!SAFE_CARD:?=_!" set "SAFE_CARD=!SAFE_CARD: =_!" set "SAFE_CARD=!SAFE_CARD:*=!" set "SAFE_CARD=!SAFE_CARD:<=!" set "SAFE_CARD=!SAFE_CARD:>=!" set "SAFE_CARD=!SAFE_CARD::=!" set "SAFE_CARD=!SAFE_CARD:\=!" echo [%date% %time%] [INFO] 安全卡号: !SAFE_CARD! >> %LOG_FILE% REM 生成临时 SQL 脚本 ( echo SET PAGESIZE 0 echo SET FEEDBACK OFF echo SET HEADING ON echo SET COLSEP "," echo WHENEVER SQLERROR EXIT SQL.SQLCODE; echo SPOOL "%OUTPUT_DIR%\!SAFE_CARD!.csv" echo SELECT t.card_sn AS 卡号, s.station_cn_name AS 车站, t.tran_date AS 日期, t.tran_time AS 时间 echo FROM data_ykt_tran t, basi_station_info s echo WHERE t.card_sn='!CARD!' echo AND t.tran_date BETWEEN '20250301' AND '20250315‘ echo AND t.station_id = s.station_id echo ORDER BY t.tran_date; echo SPOOL OFF echo EXIT ) > tmp_query.sql 2>> %LOG_FILE% REM 检查临时脚本是否生成 if not exist "tmp_query.sql" ( echo [%date% %time%] [ERROR] 无法生成 tmp_query.sql >> %LOG_FILE% goto :NEXT_CARD ) REM 执行 SQL*Plus echo [%date% %time%] [INFO] 正在执行 SQL*Plus 查询... >> %LOG_FILE% sqlplus -L %ORACLE_USER%/%ORACLE_PASSWORD%@%ORACLE_DB% @tmp_query.sql >> %LOG_FILE% 2>&1 set "SQLPLUS_ERRORLEVEL=%ERRORLEVEL%" if not "!SQLPLUS_ERRORLEVEL!"=="0" ( echo [%date% %time%] [ERROR] SQL*Plus 执行失败,错误代码: !SQLPLUS_ERRORLEVEL! >> %LOG_FILE% ) REM 检查导出结果 if exist "%OUTPUT_DIR%\!SAFE_CARD!.csv" ( REM 检查文件是否为空 for %%F in ("%OUTPUT_DIR%\!SAFE_CARD!.csv") do ( if %%~zF EQU 0 ( echo [%date% %time%] [WARN] 文件为空: !SAFE_CARD!.csv >> %LOG_FILE% ) else ( echo [%date% %time%] [INFO] 导出成功: !SAFE_CARD!.csv >> %LOG_FILE% ) ) ) else ( echo [%date% %time%] [WARN] 卡号 !CARD! 导出失败 >> %LOG_FILE% ) :NEXT_CARD del /q tmp_query.sql >nul 2>&1 ) ) echo [%date% %time%] [INFO] 导出完成 >> %LOG_FILE% echo 操作已完成,请查看日志文件 %LOG_FILE% pause exit /b 0```能给我优化后的完整代码嘛。
最新发布
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值