1. 程式人生 > >Linux下如何將資料庫指令碼檔案從sh格式變為sql格式

Linux下如何將資料庫指令碼檔案從sh格式變為sql格式

 在從事軟體開發的過程中,經常會涉及到在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

linuxPython指令碼打包為可執行檔案

一. 下載pyinstaller 連結 二. 解壓 無需安裝,解壓即可使用 三. 輸入命令,進行打包 命令格式: pyinstaller_path/pyinstaller.py -F s

Linux,同一個指令碼使用bash 和sh 啟動,表現不同,sh 啟動失敗

Linux下,同一個指令碼使用bash 和sh 啟動,表現不同,sh 啟動失敗 指令碼內容 現象 原因 參考連結 指令碼內容 source setup.bash source /opt/ros/kine

單目跟蹤位姿產品研發(二)----在linuxc++工程打包成動態庫so檔案API

       單目跟蹤位姿專案由對方公司提供應用場景,我方研發核心演算法,通過c++實現功能,然後對方公司通過java\js來開發炫酷的介面,共同合作完成,最終對方公司負責銷售推廣,推向市場。因此,涉及到java介面呼叫c++核心程式碼的問題。 現記錄

LinuxOracle資料庫自動備份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,

linuxpdf檔案轉換成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

Linuxoracle資料庫碰到字元亂碼時改成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

Linuxmysql資料庫定時備份並刪掉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