
先看一下效果

页面有索引,还能鼠标高亮,内容有滚动条,界面美观,想要添加检查项,你只需要维护这个列表就可以了,要加什么检查,写个项目,加上sql。这个文件既可以写到主代码里,也可以维护一个单独的sql文件,再扩充一下,加上一个系统检查的模块,再加上一个性能检查的模块,都是很简单的工作。
"DBA_USERS|SELECT * FROM DBA_USERS;""DBA_TABLESPACES|SELECT * FROM DBA_TABLESPACES;""DBA_OBJECTS_COUNT|SELECT owner, COUNT(*) AS object_count FROM DBA_OBJECTS GROUP BY owner;"
感觉初级开发的就要下岗了,唉!
2.来欣赏一下AI的代码吧
#!/bin/bashsource ~/.bash_profile# 输出HTML文件OUTPUT_HTML="oracle_report.html"# 数据库连接信息DB_USER="zhyu"DB_PASSWORD="zhyu"DB_CONNECTION_STRING="vm2apex"# 定义查询列表:格式为 "标题|SQL查询"QUERIES=("DBA_USERS|SELECT * FROM DBA_USERS;""DBA_TABLESPACES|SELECT * FROM DBA_TABLESPACES;""DBA_OBJECTS_COUNT|SELECT owner, COUNT(*) AS object_count FROM DBA_OBJECTS GROUP BY owner;")# 初始化HTML文件cat <<EOF > "$OUTPUT_HTML"<!DOCTYPE html><html><head><title>Oracle Database Report</title><style>body {font-family: Arial, sans-serif;margin: 0;color: #333;display: flex;}.index {width: 200px; /* 索引栏宽度,可根据需要调整 */background-color: #f9f9f9;padding: 20px;box-sizing: border-box;border-right: 1px solid #eaeaea;box-shadow: 2px 0 5px rgba(0, 0, 0, 0.05);height: 100vh; /* 让索引栏高度占满视口 */overflow-y: auto; /* 当内容超出高度时显示竖向滚动条 */position: fixed; /* 固定索引栏位置 */top: 0;left: 0;}.index h2 {color: #3498db;font-size: 1.3em;margin-bottom: 20px;text-align: center;text-transform: uppercase;letter-spacing: 1px;}.index ul {list-style-type: none;padding: 0;}.index li {margin-bottom: 8px; /* 减少列表项之间的底部间距 */transition: all 0.3s ease;}.index a {text-decoration: none;color: #333;font-size: 0.9em; /* 适当缩小字体大小 */display: block;padding: 4px 8px; /* 减少内边距 */border-radius: 5px;transition: all 0.3s ease;}.index a:hover {background-color: #3498db;color: white;transform: translateX(5px);}.content {flex: 1;padding: 20px;margin-left: 200px; /* 留出索引栏的宽度 */overflow-x: auto; /* 表格太宽时显示横向滚动条 */overflow-y: auto; /* 内容过长时显示竖向滚动条 */}/* 修改标题样式,使其固定 */.fixed-title {color: #2c3e50;border-bottom: 2px solid #3498db;padding-bottom: 10px;position: fixed;top: 0;left: 200px; /* 确保标题从索引栏右侧开始 */right: 0;background-color: white;z-index: 1; /* 确保标题显示在内容上方 */padding-left: 20px;box-sizing: border-box;}h2 {color: #3498db;margin-top: 50px; /* 增大小标题的上方间距 */word-wrap: break-word; /* 允许单词换行 */white-space: normal; /* 正常换行 */}table {font-size: 11px;color: #333333;border-width: 1px;border-color: #3A3A3A;border-collapse: collapse;min-width: 100%; /* 表格最小宽度为容器宽度 */}th {border-width: 1px;padding: 8px;border-style: solid;border-color: #517994;background-color: #B2CFD8;}tr:hover td {background-color: #DFEBF1;}td {border-width: 1px;padding: 8px;border-style: solid;border-color: #517994;background-color: #ffffff;}tr:nth-child(even) td {background-color: #DFEBF1;}tr:nth-child(odd) td {background-color: #ffffff;}tr:hover td {background-color: #e0f7fa;}.table-container {margin-top: 20px; /* 适当增加表格容器与小标题之间的间距 */margin-bottom: 40px; /* 加大表格的下间距 */overflow-x: auto; /* 添加横向滚动条 */overflow-y: auto; /* 添加竖向滚动条 */max-height: 300px; /* 设置最大高度,可根据需要调整 */}</style></head><body><div class="index"><h2>索引</h2><ul>EOF# 生成索引for query in "${QUERIES[@]}"; dotitle=$(echo "$query" | cut -d'|' -f1)id=$(echo "$title" | tr '[:upper:]' '[:lower:]' | tr -d ' ')echo "<li><a href='#$id'>$title</a></li>" >> "$OUTPUT_HTML"donecat <<EOF >> "$OUTPUT_HTML"</ul></div><!-- 修改标题部分 --><div class="fixed-title"><h1>Oracle Database Report</h1><div class="timestamp">Generated on: $(date)</div></div><div class="content"><!-- 留出标题的空间,适当增加高度 --><div style="height: 60px;"></div>EOF# 执行每个查询并生成HTML表格for query in "${QUERIES[@]}"; do# 提取标题和SQL语句title=$(echo "$query" | cut -d'|' -f1)sql=$(echo "$query" | cut -d'|' -f2)id=$(echo "$title" | tr '[:upper:]' '[:lower:]' | tr -d ' ')echo "<h2 id='$id'>$title</h2>" >> "$OUTPUT_HTML"echo '<div class="table-container">' >> "$OUTPUT_HTML"# 使用sqlplus生成HTML表格sqlplus_output=$(sqlplus -S -M "HTML ON" "$DB_USER/$DB_PASSWORD@$DB_CONNECTION_STRING" <<EOFSET PAGESIZE 50000SET LINESIZE 1000SET FEEDBACK OFFSET HEADING ON$sqlEOF)# 检查sqlplus执行结果if [ $? -ne 0 ]; thenecho "<p>Error executing query: $title</p>" >> "$OUTPUT_HTML"elseecho "$sqlplus_output" >> "$OUTPUT_HTML"fiecho '</div>' >> "$OUTPUT_HTML"done# 闭合HTML文件cat <<EOF >> "$OUTPUT_HTML"</div></body></html>EOFecho "Report generated: $OUTPUT_HTML"


文章转载自godba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




