Linux下如何將資料庫指令碼檔案從sh格式變為sql格式
1. sh檔案內容
本文中的檔名為example.sh,其內容如下:
#!/bin/bash
function Init()
{
if [ -f"example.sql" ]
then
echo"example.sql is exits and is deleting it,then recreate it"
rm -fexample.sql
else
echo"example.sql no exits and is creating it"
fi
echo " usezxdbp_166 ">>example.sql
echo " go">>example.sql
}
function CreateTable()
{
cat>>example.sql<< EOF
create table tb_employeeinfo
(
employeeno varchar(20) not null, -- 員工工號
employeename varchar(20) not null, --
員工姓名
employeeage int null -- 員工年齡
);
create unique index idx1_tb_employeeinfo ontb_employeeinfo(employeeno);
create index idx2_tb_employeeinfo ontb_employeeinfo(employeename);
print 'create table tb_employeeinfo ok'
go
EOF
}
## Execute function
Init
CreateTable
說明:
(1) 本檔案用於建立tb_employeeinfo表,生成的指令碼檔名為example.sql。
(2) Init函式用於在螢幕上輸出資訊,CreateTable函式用於建立資料表。
(3) 在sh檔案的結尾,要按順序將本檔案所包含的所有函式羅列出來,如本檔案包括的函式是Init和CreateTable。
2. 生成sql檔案的過程
(1) 上傳sh檔案
使用FTP工具(如filezilla)將example.sh檔案上傳到Linux的對應目錄下。
(2) 使用dos2unix命令修改檔案格式
由於example.sh檔案是在本地的Windows作業系統下編寫的,因此要先轉換為Linux下的格式才能使用。如果上傳後直接使用,會出現“Permissiondenied”的報錯資訊。
dos2unix命令用來將DOS格式的文字檔案轉換成UNIX格式的。其使用的格式為:dos2unix file,如果一次轉換多個檔案,把這些檔名直接跟在dos2unix之後(dos2unixfile1 file2 file3 …)。
在這裡,命令執行如下:
[email protected]:~/sql> dos2unix example.sh
dos2unix: converting file example.sh to UNIX format ...
(3) 使用chmod命令修改檔案的許可權
在執行了dos2unix命令之後,還是不能立馬生成檔案,還需要修改檔案的許可權。
chmod命令是Linux系統中最常用到的命令之一,用於改變檔案或目錄的訪問許可權。若想了解有關該命令的更多資訊,請上網查詢。
在這裡,命令為:chmod 777 example.sh
(4) 生成sql檔案
直接執行帶字尾的sh檔名,即可生成sql檔案。命令如下:
[email protected]:~/sql> example.sh
example.sql no exits and is creating it
表示example.sql檔案之前不存在,這是第一次生成。
再次執行命令:
[email protected]:~/sql> example.sh
example.sql is exits and is deleting it,then recreate it
表示example.sql檔案已經存在了,現在刪除後重新生成。
3. sql檔案內容
生成的sql檔名為example.sql,檔案內容如下:
use zxdbp_166
go
create table tb_employeeinfo
(
employeeno varchar(20) not null, -- 員工工號
employeename varchar(20) not null, -- 員工姓名
employeeage int null -- 員工年齡
);
create unique index idx1_tb_employeeinfo ontb_employeeinfo(employeeno);
create index idx2_tb_employeeinfo ontb_employeeinfo(employeename);
print 'create table tb_employeeinfo ok'
go
相關推薦
Linux下如何將資料庫指令碼檔案從sh格式變為sql格式
在從事軟體開發的過程中,經常會涉及到在Linux下將資料庫指令碼檔案從sh格式變為sql格式的問題。本文以一個實際的指令碼檔案為例,說明格式轉換的過程。 1. sh檔案內容 本文中的檔名為example.sh,其內容如下: #!/bin/bas
linux下將Python指令碼打包為可執行檔案
一. 下載pyinstaller 連結 二. 解壓 無需安裝,解壓即可使用 三. 輸入命令,進行打包 命令格式: pyinstaller_path/pyinstaller.py -F s
Linux下,同一個指令碼使用bash 和sh 啟動,表現不同,sh 啟動失敗
Linux下,同一個指令碼使用bash 和sh 啟動,表現不同,sh 啟動失敗 指令碼內容 現象 原因 參考連結 指令碼內容 source setup.bash source /opt/ros/kine
單目跟蹤位姿產品研發(二)----在linux下將c++工程打包成動態庫so檔案API
單目跟蹤位姿專案由對方公司提供應用場景,我方研發核心演算法,通過c++實現功能,然後對方公司通過java\js來開發炫酷的介面,共同合作完成,最終對方公司負責銷售推廣,推向市場。因此,涉及到java介面呼叫c++核心程式碼的問題。 現記錄
Linux下Oracle資料庫自動備份Shell指令碼
1.在伺服器建立備份目錄,並賦予許可權 mkdir -p /backup/P_DATA #新建shell指令碼存放路徑 mkdir -p /backup/P_DB_BACK #新建Oracle資料庫備份目錄 chown -R oracle:oinstall /backup/P
Linux系統下Oracle資料庫dmp檔案匯出與匯入
1.建立表空間 su - oracle create tablespace demo_new_data datafile '${ORACLE_HOME}\oradata\demo_new_data.dbf' size 500M reuse autoextend on next 40M exte
Linux下執行bash指令碼顯示“: /usr/bin/env: "bash\r": 沒有那個檔案或目錄
用 ./ 執行bash指令碼檔案出現 報錯資訊 /usr/bin/env: "bash\r": 沒有那個檔案或目錄 錯誤原因:這主要是因為bash後面多了\r這個字元的原因。在linux終端下,輸出\r會什麼都不顯示,只是把游標移到行首。於是終端雖然輸出了/usr/bin/env bash,
linux下將pdf檔案轉換成swf檔案
用PHP用到了線上瀏覽pdf檔案的功能,js播放外掛需要同時將pdf檔案轉換成swf檔案兩者兼用才能達到效果。 安裝swftools 中文支援安裝: mkdir –p /usr/share/xpdf cd /usr/share/xpdf/ 下載中文支援及字型庫 wget ftp:/
linux下將檔案設定為swap
在網上弄了一臺VPS,結果安裝完系統發現沒有swap。因為記憶體比較小,沒有swap有時候容易卡死,於是打算設定一個檔案充當swap。以前幹過這事,不過因為一般裝系統時候會設,所以這功能基本用不到,漸漸也就忘了。今天又查了一下,記錄在此備忘。 先建立一個固定大小的檔案 sudo dd if
在Linux下將oracle資料庫碰到字元亂碼時改成utf8編碼的方法
在Linux下oracle資料庫碰到字元亂碼的解決方法 linux下Oracle顯示中文亂碼的情況和原因 DEPTNO DNAME LOC ---------- -------------- -------------
Linux下將檔案打包、壓縮並分割成指定大小
轉自https://blog.csdn.net/loongembedded/article/details/54233175 Linux解壓檔案時遇到的問題,不知道總的資料是分了好多份,需要輸入命令統一解壓 1、普通tar壓縮命令 tar -zcvf
Linux下使用shell指令碼自動執行指令碼檔案
一、定時複製檔案 a、在/usr/local/wfjb_web_back目錄下建立 tomcatBack.sh檔案 檔案內容: ? 1 2 #將tomcat中的應用wfjb_web 複製到 /usr/local/wfjb_web_bac
linux下將一個目錄下的所有檔案拷貝到另一個大檔案中,並把大檔案拆分成原來的小檔案,大小,內容,名字不變
經過四五天的編寫與除錯,初步完成了檔案操作工具的內容,以下是程式碼說明: 首先,我測試用的檔案在/home/xudong/mywork下,我的最終生成檔案是在這個路徑下,/home/xudong/work/resultfile.txt,分開後生成的小檔案在/home/xud
解決Linux下執行Python指令碼顯示“: 沒有那個檔案或目錄”的問題
我猜不少人都遇到過類似的問題: 在Windows下寫好了一個python指令碼,執行沒問題 但放到Linux系統下就必須在命令列前加上一個python直譯器才能執行 指令碼開頭的註釋行已經指明瞭直譯器的路徑,也用chmod給了執行許可權,但就是不能直接執行指令碼。 比如這個指令碼: #!/usr/bin/
Linux下執行Python指令碼顯示“: 沒有那個檔案或目錄”問題
後來一想,應該是編碼問題。Windows下,文字的換行是\r\n一同實現的,而Lnix/UNIX下則只用\n。對於: #!/usr/bin/env python\r\n 這樣一行文字,windows下的程式會認為#!/usr/bin/env python就是一行。而linux會認為#! /us
AIX, Linux下將指令碼放到後臺執行——加nohup與不加nohup的區別
對於Linux下來說,當在系統上執行下面的命令,將test.sh指令碼放到後臺執行/location/test.sh &此時,分兩種情況考慮問題,一:繼續執行exit命令退出當前session, 則 test.sh這個指令碼仍然在Linux系統裡面執行,二:不執行e
Linux下mysql資料庫定時備份並刪掉3天前的備份檔案
1.首先檢查下有沒有安裝crond,命令為service crond status,如果出現unrecognized service,則說明沒有安裝,如果出現 crond is stopped。如果出現crond (pid 1956) is running...則表示
linux下將一個檔案mount為一個檔案系統
This is called mounting a loopback device. 3 steps. Creating the file that can be mounted as a file systemAssigning the file as a block deviceMounting t
linux下將自己寫的shell指令碼做成系統命令
sublime啟動為例子 首先,我們一般會將本地的shell放在/usr/local/sbin/目錄下 #! /bin/bash SUBLIME_HOME = "~/Software
linux下將.a檔案連結到.so檔案的問題
比如在連結lib123.a庫生成libabc.so庫時經常會遇到這個問題,當連結libabc.so時出現以下錯誤: libabc.so: undefined reference to `XXX’ 在readelf -s lib123.a | grep “XXX”時,顯示 165: 000000000