社区
Oracle
帖子详情
初学者问:IN OUT NOCOPY VARCHAR2是什么意思?
luosjz
2009-09-07 03:32:09
初学者问:IN OUT NOCOPY VARCHAR2是什么意思?
...全文
1255
4
打赏
收藏
初学者问:IN OUT NOCOPY VARCHAR2是什么意思?
初学者问:IN OUT NOCOPY VARCHAR2是什么意思?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
minitoy
2010-09-28
打赏
举报
回复
学习.
linxiujin1
2010-09-28
打赏
举报
回复
赞,收藏
jiaruimin11
2009-09-07
打赏
举报
回复
1
PL/SQL中对out,in out参数使用的?默认形参会复制一份实参的副本,然后在内部传递,修改等,发生异常,不会赋值给实参,控制权交还调用环境,而实参值不变,还是调用前的值。而使用了NOCOPY后,形参将获得一个指向实参的指针,然后在内部传递,赋值都直接修改实参了,此时如果异常发生,控制权交还调用环境,但是实参已经被修改了。无法还原成调用前的值。
对参数I N使用NOCOPY将会产生编译错误,这是因为参数I N总是按引用传递.
NOCOPY的主要优点是可以提高程序的效率。当我们传递大型PL/SQL表时,其优越性特别显著.使用NOCOPY的限制在某些情况下,NOCOPY将被编译器忽略,这时的参数仍将按值传递。这时,编译器不会报告编译错误。由于NOCOPY是一个提示项(Hint),编译器可以决定是否执行该项。在下列情况下,编译器将忽略NOCOPY项:
1.实参是索引表(index-by table)的成员时。如果该实参是全表,则该限制不起作用。
2.实参被强制指定精度,比例或NOT NULL时。该限制将不适用按最大长度强制的字符串参数。
3.实参和形参都是记录类型,二者是以隐含方式或使用了%ROWTYPE类型声明时,作用在对应字段的强制说明不一致。
4.传递实参需要隐式类型转换时。
5.子程序涉及到远程过程调用(PRC)。远程过程调用就是跨越数据库对远程服务器的过程调用。
小灰狼W
2009-09-07
打赏
举报
回复
in out说明这个参数数个传入传出参数
varchar2是类型
nocopy:引用别人的话
pl/sql中对out,in out参数使用的?默认形参会复制一份实参的副本,然后在内部传递,修改等,发生异常,不会赋值给实参,控制权交还调用环境,而实参值不变,还是调用前的值。而使用了nocopy后,形参将获得一个指向实参的指针,然后在内部传递,赋值都直接修改实参了,此时如果异常发生,控制权交还调用环境,但是实参已经被修改了。无法还原成调用前的值。
Oracle P/L SQL实现FTP上传、下载功能
Oracle P/L SQL实现FTP上传、下载功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --Oracle上的FTP功能 Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection is Record( Connection UTL_TCP.Connection, AccountInfo
VarChar
2(1000), TransferMethod Char(1), --A: ASCII, E: EBCDIC, I: IMAGE TransferOption Char(1), LocalDirectory
VarChar
2(30), LastReply
VarChar
2(32767 ) ); Type File_List is Table of
VarChar
2(32767) Index by Binary_Integer; is_FTPStatus
VarChar
2(800) := 'disconnect'; is_FTPPort Constant Integer := 21; is_TransferMethod Constant
VarChar
2(10) := 'ASCII'; ii_OutputLog Constant Integer := 1; ii_RollBufferLog Constant Integer := 2; ii_ClientInfoLog Constant Integer := 4; -- Per RFC 959, if account info ( ACCT ) is requested Then a 332 code -- should be Returned from the PASS command instead of a Positive Completion ii_FTPRequestAcct Constant Integer := 332; gb_Verbose Boolean := False; --是否记录冗长、累赘的日志 gi_LogOptions Integer := ii_OutputLog; gs_LogText
VarChar
2(32767) := Null; Procedure p_SetVerbose( ab_Verbose in Boolean ); Procedure p_SetLogOptions( ai_LogOptions in Integer ); Procedure p_ClearLog; --登录到远程FTP服务器 Function f_Login( as_RemoteHost in
VarChar
2, as_Username in
VarChar
2, as_Password in
VarChar
2, as_LocalDirectory in
VarChar
2 Default Null, as_RemoteDir in
VarChar
2 Default Null, as_TransferMethod in
VarChar
2 Default is_TransferMethod, ai_Timeout in Integer Default Null, ai_FTPPort in Integer Default is_FTPPort, as_AccountInfo in
VarChar
2 Default Null )Return Connection; Procedure p_Logout( ac_Connection in out No
copy
Connection ); Procedure p_SendFTPCmd( ac_Connection in out No
copy
Connection, as_Command in
VarChar
2, as_Argument in
VarChar
2 Default Null, as_AccountInfo in
VarChar
2 Default Null ); Procedure p_ReadReply( ac_Connection in out No
copy
Connection ); Procedure p_Rename( ac_Connection in out No
copy
Connection, as_OldFilename in
VarChar
2, as_NewFilename in
VarChar
2 ); Procedure p_DeleteFile( ac_Connection in out No
copy
Connection, as_Filename in
VarChar
2 ); Function f_isDirectory( ac_Connection in out No
copy
Connection, as_Directory in
VarChar
2, ab_CDToo in Boolean Default True )Return Boolean; Procedure p_CreateDirectory( ac_Connection in out No
copy
Connection, as_Directory in
VarChar
2 ); Procedure p_DeleteDirectory( ac_Connection in out No
copy
Connection, as_Directory in
VarChar
2 ); Procedure p_SetTransferMethod( ac_Connection in out No
copy
Connection, as_TransferMethod in
VarChar
2, as_Option in
VarChar
2 Default Null ); Procedure p_RemoteCD( ac_Connection in out No
copy
Connection, as_Directory in
VarChar
2, ab_CreateDir in Boolean Default True ); Procedure p_RemoteCDup( ac_Connection in out No
copy
Connection ); Function f_RemotePWD( ac_Connection in out No
copy
Connection )Return
VarChar
2; Procedure p_PutClob( ac_Connection in out No
copy
Connection, ac_LocalClob in Clob, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null ); Function f_PutClob( ac_Connection in out No
copy
Connection, ac_LocalClob in Clob, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null )Return
VarChar
2; Procedure p_PutBlob( ac_Connection in out No
copy
Connection, ab_LocalBlob in BLOB, as_RemoteFilename in
VarChar
2, ab_ForceBinary in Boolean Default True --强制为二进制 ); Procedure p_GetClob( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, ac_LocalClob in out No
copy
Clob, as_TransferMethod in
VarChar
2 Default Null ); Function f_GetClob( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null )Return Clob; Procedure p_GetBlob( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, ab_LocalBlob in out No
copy
BLOB, ab_ForceBinary in Boolean Default True ); Function f_GetBlob( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, ab_ForceBinary in Boolean Default True )Return BLOB; Procedure p_PutFile( ac_Connection in out No
copy
Connection, ai_LocalFilename in UTL_File.File_Type, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null ); Procedure p_PutFile( ac_Connection in out No
copy
Connection, as_LocalDirectory in
VarChar
2, as_LocalFilename in
VarChar
2, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null ); Function f_PutFile( ac_Connection in out No
copy
Connection, as_LocalDirectory in
VarChar
2, as_LocalFilename in
VarChar
2, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null )Return
VarChar
2; Procedure p_PutFile( ac_Connection in out No
copy
Connection, as_LocalDirectory in
VarChar
2, as_LocalFilename in
VarChar
2 ); Procedure p_GetFile( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, as_LocalDirectory in
VarChar
2, as_LocalFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null ); Procedure p_GetFile( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, as_TransferMethod in
VarChar
2 Default Null ); Procedure p_GetFile( ac_Connection in out No
copy
Connection, as_RemoteFilename in
VarChar
2, ai_LocalFilename in out No
copy
UTL_File.File_Type, as_TransferMethod in
VarChar
2 Default Null ); Procedure p_GetFileList( ac_Connection in out No
copy
Connection, afl_List out File_List, as_RemotePath in
VarChar
2 Default Null, ab_FilenameOnly in Boolean Default True, as_FilenamePrefix in
VarChar
2 Default Null, as_FilenameExt in
VarChar
2 Default Null, as_TransferMethod in
VarChar
2 Default is_TransferMethod ); Function f_GetFileList( ac_Connection in out No
copy
Connection, as_RemotePath in
VarChar
2 Default Null, ab_FilenameOnly in Boolean Default True, as_FilenamePrefix in
VarChar
2 Default Null, as_FilenameExt in
VarChar
2 Default Null, as_TransferMethod in
VarChar
2 Default is_TransferMethod )Return File_List; --根据FTP参数或系统事先设定好的IP登录到FTP服务器 --Select UTL_FTP.f_ConnectFTP() From dual; Function f_ConnectFTP( as_RemoteSubDir in
VarChar
2 Default Null, --Remote Subdirectory as_RemoteFileWildcard in
VarChar
2 Default Null, --Remote File Wildcard --删除之前生成的文件 如I02-UB*.xls as_FTPServer in
VarChar
2, --FTP Server as_FTPUserID in
VarChar
2, --FTP User ID as_FTPPasswd in
VarChar
2 --FTP Password )Return UTL_FTP.Connection; END UTL_FTP; /
Oracle 子程序参数模式,IN,OUT,NO
COPY
IN主要用于传入参数,可以是变量,常量,表达式,在子程序内部不能改变其值. 代码如下: DECLARE n NUMBER := 10; PROCEDURE do_something ( n1 IN NUMBER) IS BEGIN dbms_output.put_line(n1); — prints 10 –n1:=20; –illegal assignment. END; BEGIN do_something(n); do_something(20); END; OUT模式用于返回值,必须传入变量调用,变量的初始的值不会传给形式参数,如<<1>>所示. 形参的值在子程序返回时(不是在形式
Oracle P/L SQL实现发送Email、浏览网页等网络操作功能
Oracle P/L SQL实现发送Email、浏览网页等网络操作功能 Oracle P/L SQL实现发送Email、浏览网页等网络操作功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --.使用聚合函数实现 多行合并 Drop Type Strcat_type; Drop Function f_StrCat; Drop Package UTL_INet; Variable ls_ObjectName
VarChar
2(128); Begin Select Sequence_Name Into :ls_ObjectName From User_Sequences Where Sequence_Name = 'SYS_RAND_ID'; DBMS_Output.Put_Line( :ls_ObjectName ); Exception When No_Data_Found Then Execute Immediate 'Create Sequence SYS_RAND_ID minvalue 1 maxValue 99999999999999999 Start With 1 increment by 1 cache 5 cycle order'; End; / --1、创建类型 Create Or Replace Type Strcat_type As Object ( cat_string
varchar
2(4000), Static Function ODCIAggregateInitialize(cs_ctx In Out strcat_type) Return Number, Member Function ODCIAggregateIterate(self In Out strcat_type,value in
varchar
2) Return Number, Member Function ODCIAggregateMerge(self In Out strcat_type,ctx2 In Out strcat_type) Return Number, Member Function ODCIAggregateTerminate(self In Out strcat_type,ReturnValue Out
varchar
2,flags in Number) Return Number ); / --2. 创建类型体 Create Or Replace Type Body Strcat_type Is Static Function ODCIAggregateInitialize( cs_ctx In Out strcat_type )Return Number is Begin cs_ctx := strcat_type( Null ); Return ODCIConst.Success; End; Member Function ODCIAggregateIterate( self In Out strcat_type, value In
varchar
2 ) Return Number is Begin if self.cat_string is Null or Instr( self.cat_string, value ) = 0 Then self.cat_string := self.cat_string || ','|| value; End if; Return ODCIConst.Success; End; Member Function ODCIAggregateTerminate( self In Out strcat_type, ReturnValue Out
varchar
2, flags In Number) Return Number is Begin ReturnValue := ltrim(rtrim( self.cat_string,','),',' ); Return ODCIConst.Success; End; Member Function ODCIAggregateMerge( self In Out strcat_type, ctx2 In Out strcat_type) Return Number is Begin if self.cat_string is Null or Instr( self.cat_string, ctx2.cat_string ) = 0 Then self.cat_string := self.cat_string || ',' || ctx2.cat_string; End if; Return ODCIConst.Success; End; End; / --3.创建函数: 使用聚合函数实现 多行合并 Create or Replace Function f_StrCat( as_input
Varchar
2 ) Return
Varchar
2 PARALLEL_ENABLE AGGREGATE USING strcat_type; / Grant Execute on f_StrCat To Public; --End of 使用聚合函数实现 多行合并 Create Or Replace Package UTL_INet AS Type
VarChar
_Type is Table of
VarChar
2(400) Index By Binary_Integer; Type Number_Type is Table of Number(12,4) Index By Binary_Integer; Type DynamicCursor is ref Cursor; --动态游标 --Purpose : 获得汉字拼音编码 Type ut_PYIndex_191_List is Varray( 191 ) OF Number; Type ut_PYIndex_List is Varray( 10 ) OF ut_PYIndex_191_List; is_OracleDirectory Constant
VarChar
2(20) := 'ATTACH_DIR'; --内部附件生成目录(Oracle的目录) --Clob叠加比较慢,先用
VarChar
2叠加到4000个字符后才叠加到Clob字段 --UTL_INet.p_ClobCAT( Procedure p_ClobCAT( ac_HTMLText in Out Clob, as_CatText in Out
VarChar
2, as_Str in
VarChar
2 Default Null ); --字符串根据特定分隔符分来 --Select UTL_INet.f_SplitString( 'A,B,C', xx, ',' ) From dual; Function f_SplitString( as_SourStr in out Clob, --输入字符串A,B,C as_Separator in
VarChar
2 Default '/' --分拆依据的分隔符, )Return
VarChar
2; --分拆结果A --将Clob内容写入物理文件 --Exec UTL_INet.p_PutClob2File( as_FileName => 'aa.sql', ac_Text => 'test sql' ); Procedure p_PutClob2File( as_SubDir in
VarChar
2, --目录名 as_FileName in
VarChar
2, --文件名 ac_Text in Clob, --文件内容 as_Overwrite in
VarChar
default 'Y', --标志位:Y:覆盖文件内容,N:追加 as_OraVersion in
VarChar
default 'N' --标志位:Y:写入Oracle版本信息 ); --序号自动递增计算 --e.g.: 输入:HLXU99349021,返回:HLXU99349022 --范例: Select UTL_INet.f_AutoNum( 'HLXU99349021' ), UTL_INet.f_AutoNum( 'ABA', -1 ), UTL_INet.f_AutoNum( 'ABZ' ) from Dual; Function f_AutoNum( as_OldNum in
VarChar
2, --原字符串 ai_Step in Number Default 1, --步长,默认是递增加1, ai_DigitXXX in Number Default Null --累计序号位数 XXX )Return
VarChar
2; --字符串加解密,返回一串32位长的字符串 --Select UTL_INet.f_MD5( 'TestPassword' ) From Dual; Function f_MD5( as_SourceStr in
Varchar
2 --需要加密的字符串 ) Return
Varchar
2; --将Email地址去头去尾,剩下最简单的Email地址,如"TSI Customer Service"
变成cs@csdn.com Function f_GetNakedEmailAddr( as_DisplayEmail In
VarChar
2, as_Including in Char Default 'N' --Y: 返回
)Return
VarChar
2; --测试发送Email的邮箱是否正确 Function f_TestEmailAccount( ac_Connection out No
copy
UTL_SMTP.Connection, as_SMTPHost in
VarChar
2, --邮件服务器 mail.csdn.com ai_SMTPPort in PLS_Integer Default 25, --邮件服务器端口 as_SMTPAuth in
VarChar
2 Default 'Y', --发送密码验证 as_Username in
VarChar
2 Default Null, --邮件用户 as_Password in
VarChar
2 Default Null, --邮件口令 as_WalletPath in
VarChar
2 Default Null, as_WalletPwd in
VarChar
2 Default Null )Return Boolean; ------------------------------------------------ 写邮件头和邮件内容------------------------- Procedure p_WriteRawData( ac_Conn in Out No
copy
UTL_SMTP.Connection, as_Partname in
VarChar
2, as_Value in
VarChar
2, as_Splite in
VarChar
2 Default ':', as_CRLF in
VarChar
2 Default UTL_TCP.CRLF ); ----------------------------------------------发送附件------------------------------------- Procedure p_MailAttachment( ac_Conn in Out No
copy
UTL_SMTP.Connection, as_Filename in
VarChar
2, as_Boundary in
VarChar
2, as_Encode in
VarChar
2 Default 'base64', as_MimeType in
VarChar
2 Default 'text/plain', as_ContentID in
VarChar
2 Default Null, -- ab_Inline in Boolean Default False --True将文本内容直接在邮件内容显示出来,并出现在附件中,False不显示只出现在附件中 ); -----------------自动签名的生成,签名生成显示后还出现此签名文件为附件,尚未解决------------------------------- Procedure p_GetMailSignature( ac_Conn in Out No
copy
UTL_SMTP.Connection, as_Boundary in
VarChar
2, as_Encode in
VarChar
2 Default 'base64', as_SignatureLogo in
VarChar
2 Default Null, as_SignatureText in
VarChar
2 Default Null ); --发送Email前必须将ewallet.p12拷贝到C:\OracleAttachDir目录 --发送电子邮件 --Exec UTL_INet.p_SendEmail( 'csdn@gmail.com', 'Test 主题Subject', 'Mail body(邮件内容)' ); Procedure p_SendEmail( as_Sender in
VarChar
2, as_Recipient in
VarChar
2, as_CC in
VarChar
2 Default Null, as_BCC in
VarChar
2 Default Null, as_Subject in
VarChar
2, ac_Message in Clob, as_AttachLists in
VarChar
2 Default Null, --多个用逗号,分开 as_SMTPHost in
VarChar
2, --邮件服务器 ai_SMTPPort in PLS_Integer Default 25, --邮件服务器端口 as_SMTPAuth in
VarChar
2 Default 'Y', --发送密码验证 as_WalletPath in
VarChar
2 Default Null, as_WalletPwd in
VarChar
2 Default Null, as_Username in
VarChar
2 Default Null, as_Password in
VarChar
2 Default Null, as_RunResult out
VarChar
2, --返回信息,OK成功,其他返回错误 as_SignatureLogo in
VarChar
2 Default Null, as_SignatureText in
VarChar
2 Default Null, as_Encode in
VarChar
2 Default 'base64', ai_Priority In Pls_Integer Default Null ); Function f_LoadHTMLFromURL( as_URL in
VarChar
2, as_CharSet in
VarChar
2 Default 'UTF-8' )Return Clob; --生成HTML报表表头 --Exec f_HTMLTableHead( 'Tab1', '20:Table Name;20:Records' ); Function f_HTMLTableHead( as_TableID in
VarChar
2, --表ID as_WidthColumns in
VarChar
2, --表头内容,用分号;隔开,宽度与标题用冒号:隔开 as_BgColor in
VarChar
2 Default 'CCCCCC' --标题背景色 )Return
VarChar
2; --生成HTML报表主体内容 --Exec UTL_INet.f_HTMLTableBody( '' ); Function f_HTMLTableBody( as_BodyText in
VarChar
2, --主体内容,多个用分号;隔开 as_Align in
VarChar
2 Default Null --格式(居中,靠左,靠右) )Return
VarChar
2; --获取汉字拼音字母表 --Select UTL_INet.f_getChineseSpell( '获取汉字拼音' ) from dual; Function f_getChineseSpell( as_CNStr in
VarChar
2, --中文 as_First in
VarChar
2 Default Null --空返回完整拼音,其他返回拼音首字母 )Return
VarChar
2; --二进制转换成十进制函数 --Select UTL_INet.f_Bin2Dec( '10111011' ) From dual; Function f_Bin2Dec( as_Bin in
VarChar
2 )Return Number; --十进制转换成二进制函数 --Select UTL_INet.f_Dec2Bin( 187 ) From dual; Function f_Dec2Bin( an_Dec in Number )Return
VarChar
2; --十进制转换成三十二进制函数 --Select UTL_INet.f_Dec2Hex( 187 ) From dual; Function f_Dec2Hex( an_Dec in Number )Return
VarChar
2; --三十二进制转换成十进制函数 --Select UTL_INet.f_Hex2Dec( '5R' ) From dual; Function f_Hex2Dec( as_Hex in
VarChar
2 )Return Number; --生成12位随机数 --Select UTL_INet.f_Rand() From dual; Function f_Rand( as_PreFix in
VarChar
2 Default '00', --未满个数字符补充串 an_Nums in Number Default 12 )Return
VarChar
2; --繁体字转化成简体字(传入的汉字,若有繁体自动转化为简体) Function f_ft2jt( as_Text in
VarChar
2 --传入的汉字 )Return
VarChar
2; --简体字转化成繁体字(传入的汉字,若有简体自动转化为繁体) Function f_jt2ft( as_Text in
VarChar
2 --传入的汉字 )Return
VarChar
2; -- -------------------------------------------------------------------------- -- Description : SOAP related Functions for consuming web services. Type t_Request is Record ( Method
VarChar
2(256), Namespace
VarChar
2(256), Body
VarChar
2(32767), EnvelopeTag
VarChar
2(30) ); Type t_Response is Record ( Doc XMLType, EnvelopeTag
VarChar
2(30) ); Function f_NewRequest( as_Method in
VarChar
2, as_Namespace in
VarChar
2, as_EnvelopeTag in
VarChar
2 Default 'SOAP-ENV' )Return t_Request; Procedure p_AddParameter( as_Request in out No
copy
t_Request, as_Name in
VarChar
2, as_Type in
VarChar
2, as_Value in
VarChar
2 ); Function f_Invoke( as_Request in out No
copy
t_Request, as_URL in
VarChar
2, as_Action in
VarChar
2 )Return t_Response; Function f_GetReturnValue( as_Response in out No
copy
t_Response, as_Name in
VarChar
2, as_Namespace in
VarChar
2 )Return
VarChar
2; --列出当前目录下所有文件清单,可以指定扩展名,是否包含子目录,返回的文件名用|分割开来 Function f_ListDirectory( as_SubDir in
VarChar
2, as_Ext in
VarChar
2 Default Null, as_IncludingSubDir in Char Default 'N' )Return Clob; --将数值翻译成中文大写、英文大写 --Select f_Digit2Char( 24822.80, 'EN_Amount' ) From dual; Function f_Digit2Char( an_Amount in Number, --要被翻译的数值 as_Option in
VarChar
2 --翻译选择项 )Return
VarChar
2; --发送短信 Function f_SendSMS( as_MobilePhone in
VarChar
2, --手机号码 as_SMSText in
VarChar
2, --短信内容 as_SMSURL in
VarChar
2, as_SMSUserID in
VarChar
2, as_SMSPasswd in
VarChar
2 )Return
VarChar
2; --删除某个指定文件 Procedure p_RemoveFile( as_SubDir in
VarChar
2, --路径 as_FileName in
VarChar
2 --多个用逗号,分开 ); --从文件中读内容 Function f_GetTextFromFile( as_SubDir in
VarChar
2, --目录名 as_FileName in
VarChar
2, --文件名 as_NewLine in
VarChar
2 Default UTL_TCP.CRLF --换行符 )Return Clob; END UTL_INet; /
Golang中禁止拷贝的实现代码
前言 Go中没有原生的禁止拷贝的方式,所以如果有的结构体,你希望使用者无法拷贝,只能指针传递保证全局唯一的话,可以这么干,定义 一个结构体叫 no
Copy
,要实现 sync.Locker 这个接口 方法如下: // no
Copy
may be embedded into structs which must not be copied // after the first use. // // See https://golang.org/issues/8005#issuecomment-190753527 // for details. type no
Copy
struct{} // Lo
Oracle_plsql基本语法笔记.txt
Oracle 常用命令举例 标题 基本语法 %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 procedure 的建立和调用 function的建立和调用 标题 参数的调用(in 模式为按址调用,out / in out模式为按值调用。NO
COPY
强行转换成按址调用)。 标题 软件包及封装 软件包(PACKAGE)的建立和调用 软件包的全局结构 封装函数的纯度 标题 查看源代码及建立用户、用户的权限 源代码的查看 建立用户及登陆 授予权限和权限收回 标题 依赖 直接依赖 查看依赖 包之间调用 标题 触发器 建立简单的触发器 触发器分类 稍复杂的触发器 条件谓词 触发器中不可使用Commit 系统触发器举例(LOGON) instead of 触发器
Oracle
17,090
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章