隱函數資料庫
⑴ 如何隱藏excel表中的函數
1、單擊行1與列A相交的空白處,選定整個工作表,再點擊右鍵,選擇「設置單元格格式」
2、在設置單元格格式的對話框中,選擇「保護」,再將「鎖定」和「隱藏」前面的勾去掉,再點擊「確定」。
6、在保護工作表對話框中,輸入保護密碼,並將(保護工作表並鎖定單元格內容;選定鎖定單元格;選定未鎖定的單元格)三項前面勾選上,然後點擊「確定」
7、再次輸入保護密碼,點擊「確定」,設置完成。
8、看看設置效果,滑鼠再次點擊XX,可以看到狀態欄一片空白,公式不見了。如果想要修改編輯公式,只要重復剛才的幾個簡單步驟即可。
注意事項
保護密碼一旦丟失或遺忘,則無法找回,建議妥善保存。
特別提醒:密碼區分大小寫,千萬別輸錯了,相信對你有一定的幫助!
⑵ sql 不允許資料庫類型varcher到varbinary的隱式轉換,請使用convert函數
SQL 不允許由字元串類型 向2進制類型轉換;
可以做如下轉換:
SELECT CONVERT(varbinary(10),'abc')
⑶ SQl資料庫中包是什麼
一、什麼是PL/SQL包
包就是一個把各種邏輯相關的類型、常量、變數、異常和子程序組合在一起的模式對象。包通常由兩個部分組成:包說明和包體,但有時包體是不需要的。說明(簡寫為spec)是應用程序介面;它聲明了可用的類型、變數、常量、異常、游標和子程序,包體部分完全定義游標和子程序,並對說明中的內容加以實現。
如下例所示,我們可以認為說明部分是一個可選介面,而包體是一個"黑盒"。我們可以調試、增強或替換一個包體而不同改變介面(包說明)。
我們可以從SQL*Plus中使用CREATE PACKAGE語句來創建一個包。語法如下:
CREATE [OR REPLACE] PACKAGE package_name
[AUTHID {CURRENT_USER | DEFINER}]
{IS | AS}
[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition ...]
[record_type_definition ...]
[subtype_definition ...]
[collection_declaration ...]
[constant_declaration ...]
[exception_declaration ...]
[object_declaration ...]
[record_declaration ...]
[variable_declaration ...]
[cursor_spec ...]
[function_spec ...]
[procere_spec ...]
[call_spec ...]
[PRAGMA RESTRICT_REFERENCES(assertions) ...]
END [package_name];
[CREATE [OR REPLACE] PACKAGE BODY package_name {IS | AS}
[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition ...]
[record_type_definition ...]
[subtype_definition ...]
[collection_declaration ...]
[constant_declaration ...]
[exception_declaration ...]
[object_declaration ...]
[record_declaration ...]
[variable_declaration ...]
[cursor_body ...]
[function_spec ...]
[procere_spec ...]
[call_spec ...]
[BEGIN
sequence_of_statements]
END [package_name];]
在說明部分聲明的內容都是公有的,對應用程序是可見的。我們必須在所有的其他內容(除了用於為一個特殊的函數命名的編譯指示;這樣的編譯指示必須跟在函數說明之後)聲明之後才可以聲明子程序。
包體中的內容有私有的,它實現了說明部分定義的細節內容,並且對應用程序是不可見的。緊跟著包體聲明部分的是一個可選的初始化部分,它用於初始化包中的變數等。
AUTHID語句決定了是否是所有的打包子程序都按定義者許可權(默認)或調用者許可權執行,其中涉及到的模式對象是在定義者的模式中解析還是在調用者的模式中解析。
一個調用說明能讓我們在Oracle數據詞典中發布一個Java方法或外部C函數。調用說明靠把程序的名稱、參數類型和返回類型映射到它們的SQL副本(SQL counterpart)中來發布程序。
1、PL/SQL包舉例
在下面的例子中,我們把一個記錄類型、游標和兩個employment過程進行打包。要注意,過程hire_employee使用資料庫序列empno_seq和函數SYSDATE分別插入到欄位雇員編號和僱傭日期。
CREATE OR REPLACE PACKAGE emp_actions AS -- spec
TYPE emprectyp IS RECORD(
emp_id INT,
salary REAL
);
CURSOR desc_salary RETURN emprectyp;
PROCEDURE hire_employee(
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER
);
PROCEDURE fire_employee(emp_id NUMBER);
END emp_actions;
CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body
CURSOR desc_salary RETURN emprectyp IS
SELECT empno, sal
FROM emp
ORDER BY sal DESC;
PROCEDURE hire_employee(
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER
) IS
BEGIN
INSERT INTO emp
VALUES (empno_seq.NEXTVAL,
ename,
job,
mgr,
SYSDATE,
sal,
comm,
deptno);
END hire_employee;
PROCEDURE fire_employee(emp_id NUMBER) IS
BEGIN
DELETE FROM emp
WHERE empno = emp_id;
END fire_employee;
END emp_actions;
只有在包說明部分的聲明內容對應用程序才是可見可訪問的;包體的詳細實現是不可見不可訪問的。所以,我們可以在不重新編譯調用程序的前提下修改包體(實現)。
二、PL/SQL包的優點
包提供了幾個優點:模塊化、方便應用程序設計、信息隱藏、附加功能和良好的性能。
模塊化
包能讓我們把邏輯相關的類型、常量、變數、異常和子程序等放到一個命名的PL/SQL模塊中。每一個包都容易理解,包與包之間介面簡單、清晰。這將有助於程序開發。
輕松的程序設計
設計應用程序時,我們首先要確定的是包說明中的介面信息。我們可以在沒有包體的條件下編寫並編譯說明部分。然後引用該包的存儲子程序也會被編譯。在完成整個應用程序之前,我們是不需要完全實現包體部分的。
信息隱藏
有了包,我們就可以指定哪些類型、常量、變數、異常和子程序等是公有(可見和可訪問)或私有(隱藏和不可訪問)。例如,如果一個包里包含了四個子程序,其中三個是公有的一個是私有的。包就會隱藏私有子程序的實現,這樣的話,如果實現內容發生改變,受到影響的只有包本身(不是我們的應用程序)。同樣,對用戶隱藏實現細節也能保證包的完整性。
附加功能
打包公有變數和游標在一個會話期會一直存在。所以,它們可以被當前環境下的所有子程序共享。並且它們允許我們跨事務來維護數據而不用把它保存在資料庫中。
良好的性能
在我們首次調用打包子程序時,整個包就會被載入到內存中。所以,以後調用包中的相關子程序時,就不需要再次讀取磁碟了。包能阻塞級聯依賴,這樣就能避免不必要的編譯。例如,如果我們改變打包函數的實現,Oracle不需要重新編譯調用子程序,因為它們並不依賴於包體。
三、理解包說明
包說明包括了公有聲明。這些聲明的作用於對於資料庫模式來說是本地的,對於包來說是全局的。所以,被聲明的內容可以從應用程序中和包的任何地方訪問。下圖演示了包的作用范圍:
說明中列出了包中對應用程序所有可用的資源。例如,下面的聲明演示了一個接受INTEGER類型的參數並返回一個INTEGER結果的函數fac:
FUNCTION fac (n INTEGER) RETURN INTEGER; -- returns n!
這些就是我們要調用的函數的所有信息。我們並不需要考慮它的實現細節(如,是使用迭代還是遞歸)。
只有子程序和游標有實現部分。所以,如果一個說明只有類型、常量、變數、異常的聲明和調用說明,那麼包體就沒有必要的了。下面就是一個沒有包體的包:
CREATE PACKAGE trans_data AS -- bodiless package
TYPE timerec IS RECORD(
minutes SMALLINT,
hours SMALLINT
);
TYPE transrec IS RECORD(
CATEGORY VARCHAR2,
ACCOUNT INT,
amount REAL,
time_of timerec
);
minimum_balance CONSTANT REAL := 10.00;
number_processed INT;
insufficient_funds EXCEPTION;
END trans_data;
包trans_data不需要包體,因為類型、常量、變數和異常並沒有實現部分。這樣的包能讓我們定義全局變數,可供子程序和資料庫觸發器使用。
1、引用包的內容
如果要引用包內聲明的類型、常量、變數、異常和子程序等,就得使用點標識:
package_name.type_name
package_name.item_name
package_name.subprogram_name
package_name.call_spec_name
我們可以從資料庫觸發器、存儲子程序、3GL(第三代程序語言)應用程序和各種Oracle工具中引用包中的內容。例如,我們可以從SQL*Plus中調用過程hire_employee:
SQL> CALL emp_actions.hire_employee('TATE', 'CLERK', ...);
下例中,我們可以從一個嵌入到Pro*C的匿名PL/SQL塊調用同樣的過程。實參emp_name和job_title是主變數(即聲明在主環境中的變數)。
EXEC SQL EXECUTE
BEGIN
emp_actions.hire_employee(:emp_name, :job_title, ...);
約束
我們不能直接或間接地引用遠程打包變數。例如,我們不能遠程調用下面的過程,因為它在參數初始化子句中引用了打包變數:
CREATE PACKAGE random AS
seed NUMBER;
PROCEDURE initialize (starter IN NUMBER := seed, ...);
同樣,我們也不能在包的內部引用主變數。
^ ^希望對你有幫助
⑷ 後綴為dll的資料庫文件怎樣解讀
後綴為dll的資料庫文件為動態鏈接庫,要載入到軟體上才能用。
附:DLL文件(Dynamic Linkable Library 即動態鏈接庫文件),是一種不能單獨運行的文件,它允許程序共享執行特殊任務所必需的代碼和其他資源
比較大的應用程序都由很多模塊組成,這些模塊分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模塊的功能較為通用,在構造其它軟體系統時仍會被使用。在構造軟體系統時,如果將所有模塊的源代碼都靜態編譯到整個應用程序 EXE 文件中,會產生一些問題:一個缺點是增加了應用程序的大小,它會佔用更多的磁碟空間,程序運行時也會消耗較大的內存空間,造成系統資源的浪費;另一個缺點是,在編寫大的 EXE 程序時,在每次修改重建時都必須調整編譯所有源代碼,增加了編譯過程的復雜性,也不利於階段性的單元測試。
Windows 系統平台上提供了一種完全不同的較有效的編程和運行環境,你可以將獨立的程序模塊創建為較小的 DLL 文件,並可對它們單獨編譯和測試。在運行時,只有當 EXE 程序確實要調用這些 DLL 模塊的情況下,系統才會將它們裝載到內存空間中。這種方式不僅減少了 EXE 文件的大小和對內存空間的需求,而且使這些 DLL 模塊可以同時被多個應用程序使用。Windows 自己就將一些主要的系統功能以 DLL 模塊的形式實現。
一般來說,DLL 是一種磁碟文件,以.dll、.DRV、.FON、.SYS 和許多以 .EXE 為擴展名的系統文件都可以是 DLL。它由全局數據、服務函數和資源組成,在運行時被系統載入到調用進程的虛擬空間中,成為調用進程的一部分。如果與其它 DLL 之間沒有沖突,該文件通常映射到進程虛擬空間的同一地址上。DLL 模塊中包含各種導出函數,用於向外界提供服務。DLL 可以有自己的數據段,但沒有自己的堆棧,使用與調用它的應用程序相同的堆棧模式;一個 DLL 在內存中只有一個實例;DLL 實現了代碼封裝性;DLL 的編制與具體的編程語言及編譯器無關。
在 Win32 環境中,每個進程都復制了自己的讀/寫全局變數。如果想要與其它進程共享內存,必須使用內存映射文件或者聲明一個共享數據段。DLL 模塊需要的堆棧內存都是從運行進程的堆棧中分配出來的。Windows 在載入 DLL 模塊時將進程函數調用與 DLL 文件的導出函數相匹配。Windows 操作系統對 DLL 的操作僅僅是把 DLL 映射到需要它的進程的虛擬地址空間里去。DLL 函數中的代碼所創建的任何對象(包括變數)都歸調用它的線程或進程所有。
調用方式:
1、靜態調用方式:由編譯系統完成對 DLL 的載入和應用程序結束時 DLL 卸載的編碼(如還有其它程序使用該 DLL,則 Windows 對 DLL 的應用記錄減1,直到所有相關程序都結束對該 DLL 的使用時才釋放它,簡單實用,但不夠靈活,只能滿足一般要求。
隱式的調用:需要把產生動態連接庫時產生的 .LIB 文件加入到應用程序的工程中,想使用 DLL 中的函數時,只須說明一下。隱式調用不需要調用 LoadLibrary() 和 FreeLibrary()。程序員在建立一個 DLL 文件時,鏈接程序會自動生成一個與之對應的 LIB 導入文件。該文件包含了每一個 DLL 導出函數的符號名和可選的標識號,但是並不含有實際的代碼。LIB 文件作為 DLL 的替代文件被編譯到應用程序項目中。
當程序員通過靜態鏈接方式編譯生成應用程序時,應用程序中的調用函數與 LIB 文件中導出符號相匹配,這些符號或標識號進入到生成的 EXE 文件中。LIB 文件中也包含了對應的 DL L文件名(但不是完全的路徑名),鏈接程序將其存儲在 EXE 文件內部。
當應用程序運行過程中需要載入 DLL 文件時,Windows 根據這些信息發現並載入 DLL,然後通過符號名或標識號實現對 DLL 函數的動態鏈接。所有被應用程序調用的 DLL 文件都會在應用程序 EXE文件載入時被載入在到內存中。可執行程序鏈接到一個包含 DLL 輸出函數信息的輸入庫文件(.LIB文件)。操作系統在載入使用可執行程序時載入 DLL。可執行程序直接通過函數名調用 DLL 的輸出函數,調用方法和程序內部其 它的函數是一樣的。
2、動態調用方式:是由編程者用 API 函數載入和卸載 DLL 來達到調用 DLL 的目的,使用上較復雜,但能更加有效地使用內存,是編制大型應用程序時的重要方式。
顯式的調用:
是指在應用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 顯式的將自己所做的動態連接庫調進來,動態連接庫的文件名即是上面兩個函數的參數,再用 GetProcAddress() 獲取想要引入的函數。自此,你就可以象使用如同本應用程序自定義的函數一樣來調用此引入函數了。在應用程序退出之前,應該用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 釋放動態連接庫。直接調用 Win32 的 LoadLibary 函數,並指定 DLL 的路徑作為參數。LoadLibary 返回 HINSTANCE 參數,應用程序在調用 GetProcAddress 函數時使用這一參數。GetProcAddress 函數將符號名或標識號轉換為 DLL 內部的地址。程序員可以決定 DLL 文件何時載入或不載入,顯式鏈接在運行時決定載入哪個 DLL 文件。使用 DLL 的程序在使用之前必須載入(LoadLibrary)載入DLL從而得到一個DLL模塊的句柄,然後調用 GetProcAddress 函數得到輸出函數的指針,在退出之前必須卸載DLL(FreeLibrary)。
正因為DLL 有佔用內存小,好編輯等的特點有很多電腦病毒都是DLL格式文件。但不能單獨運行。
動態鏈接庫通常都不能直接運行,也不能接收消息。它們是一些獨立的文件,其中包含能被可執行程序或其它DLL調用來完成某項工作的函數。只有在其它模塊調用動態鏈接庫中的函數時,它才發揮作用。
⑸ 隱函數求微分怎麼求
求隱函數的微分方法有兩種:
第一種方法:將x、y看成等同地位,誰也不是誰的函數,方程兩邊微分,解出dy即可。
第二種方法:鏈式求導,chain rule。將方程兩邊都對x求導,有y的地方,先當成y的函數,對y求導,然後再將y對x求導。最後解出dy/dx,也就是解出y『。
說明:隱函數的求導結果,或微分結果,一般都既是x的函數,也是y的函數。
(5)隱函數資料庫擴展閱讀:
如果方程F(x,y)=0能確定y是x的函數,那麼稱這種方式表示的函數是隱函數。而函數就是指:在某一變化過程中,兩個變數x、y,對於某一范圍內的x的每一個值,y都有確定的值和它對應,y就是x的函數。這種關系一般用y=f(x)即顯函數來表示。F(x,y)=0即隱函數是相對於顯函數來說的。
隱函數導數的求解一般可以採用以下方法:
方法①:先把隱函數轉化成顯函數,再利用顯函數求導的方法求導;
方法②:隱函數左右兩邊對x求導(但要注意把y看作x的函數);
方法③:利用一階微分形式不變的性質分別對x和y求導,再通過移項求得的值;
方法④:把n元隱函數看作(n+1)元函數,通過多元函數的偏導數的商求得n元隱函數的導數。
舉個例子,若欲求z = f(x,y)的導數,那麼可以將原隱函數通過移項化為f(x,y,z) = 0的形式,然後通過(式中F'y,F'x分別表示y和x對z的偏導數)來求解。
⑹ 怎樣求隱函數的最大值
請參閱網路文庫《隱函數的極值求法》
http://wenku..com/link?url=b3z5GW9a76G_jTY0XjcDBY-RFYNmM_cNXojRy
⑺ 資料庫中參數maxTotal是什麼意思
返回列表或資料庫中的分類匯總 語法 SUBTOTAL(function_num, ref1, ref2, ...) Function_num 為 1 到 11(包含隱藏值)或 101 到 111(忽略隱藏值)之間的數字,指定使用何種函數在列表中進行分類匯總計算。 Function_num (包含隱藏值) Function_num (忽略隱藏值) 函數 1 101 AVERAGE 2 102 COUNT 3 103 COUNTA 4 104 MAX 5 105 MIN 6 106 PRODUCT 7 107 STDEV 8 108 STDEVP 9 109 SUM 10 110 VAR 11 111 VARP Ref1, ref2, 為要進行分類匯總計算的 1 到 29 個區域或引用。 對E1到E12列使用 SUM 函數計算出的分類匯總 實際上這種情況下可以看成求和 9是Sum的意思,就是求和
⑻ 數據透視表更新後把函數隱藏起來怎麼辦
需要分三大步驟完成:
1、全部選中工作表→右擊→設置單元格格式→保護→去掉「鎖定」前方框中的√→確定(此步驟是為了設置保護後可以編輯其他單元格)
2、選中要保護的公式所在單元格→重復以上過程→在「鎖定」前方框中加上「√」;(此步驟是為了設置保護公式所在單元格)
3、工具→保護→保護工作表→設置密碼(兩次,也可以不設)→確定。
註:需要修改公式時→工具→保護→撤銷工作表保護.
⑼ 資料庫界面修改時,出現不允許從數據類型 datetime 到 int 的隱式轉換.請使用 CONVERT 函數來運行此查詢。
有些數據類型是支持隱式轉換的如:int 和decimal ,可以隱式轉換的在使用時可以不用顯示轉換直接使用,如欄位col1 是decimal 數據類型 ,col2 是int 類型 則可以col1 = col2 ,資料庫計算時會自己轉換.
有些是不能隱式轉換的,如varchar和money,需要用顯示的轉換函數來轉換
如convert(money,col1) 或cast (col1 as money)