41-1:
	DECLARE
	  ddl VARCHAR2(1000):='CREATE FUNCTION temp RETURN NUMBER IS '||
	    'BEGIN RETURN 1; END;';
	BEGIN
	  dbms_ddl.create_wrapped(ddl);
	END;
	/
41-2:
	VAR line VARCHAR2(100)
	VAR status NUMBER
	BEGIN
	  DBMS_OUTPUT.ENABLE;
	  DBMS_OUTPUT.PUT_LINE('ΰл');
	  DBMS_OUTPUT.PUT('й');
	  DBMS_OUTPUT.PUT(',ΰ');
	  DBMS_OUTPUT.NEW_LINE;
	  DBMS_OUTPUT.GET_LINE(:line,:status);
	END;
	/
41-3:
	DECLARE
	  line_table DBMSOUTPUT_LINESARRAY;
	  lines NUMBER(38):=3;
	BEGIN
	  DBMS_OUTPUT.ENABLE;
	  DBMS_OUTPUT.PUT_LINE('ΰл');
	  DBMS_OUTPUT.PUT('й');
	  DBMS_OUTPUT.PUT(',ΰ');
	  DBMS_OUTPUT.NEW_LINE;
	  DBMS_OUTPUT.GET_LINES(line_table,lines);
	END;
	/
41-4:
	BEGIN
	  FOR i IN 1..5 LOOP
	    dbms_output.put_line(dbms_random.normal);
	  END LOOP;
	END;
	/
41-5:
	BEGIN
	  FOR i IN 1..5 LOOP
	    dbms_output.put_line(dbms_random.string('a',3));
	  END LOOP;
	END;
	/
41-6:
	BEGIN
	  FOR i IN 1..5 LOOP
	    dbms_output.put_line(dbms_random.value(10,15));
	  END LOOP;
	END;
	/
41-7:
	SQL> exec dbms_session.set_nls('nls_date_format','''YYYY-MM-DD''')
	SELECT sysdate FROM dual;
41-8:
	exec dbms_session.set_role('RESOURCE')
41-9:
	exec dbms_session.set_sql_trace(TRUE)
	exec dbms_session.set_sql_trace(FALSE)
41-10:
	exec dbms_shared_pool.keep('standard')
41-11:
	set serveroutput on
	exec dbms_shared_pool.sizes(100)
41-12:
	DECLARE
	  used_bytes NUMBER;
	  alloc_bytes NUMBER;
	BEGIN
	  dbms_space.create_index_cost('CREATE INDEX i_ename ON emp(ename)',
	    used_bytes,alloc_bytes);
	  dbms_output.put_line('ռÿռ:'||used_bytes);
	  dbms_output.put_line('ʵռÿռ:'||alloc_bytes);
	END;
	/	
41-13:
	DECLARE
	 ub NUMBER;
	 ab NUMBER;
	 cl sys.create_table_cost_columns;
	BEGIN
	  cl := sys.create_table_cost_columns( sys.create_table_cost_colinfo('NUMBER',10),
	        sys.create_table_cost_colinfo('VARCHAR2',30),
	        sys.create_table_cost_colinfo('VARCHAR2',30),
	        sys.create_table_cost_colinfo('DATE',NULL));
	  DBMS_SPACE.CREATE_TABLE_COST('SYSTEM',cl,100000,0,ub,ab);
	  DBMS_OUTPUT.PUT_LINE('Used Bytes: ' || TO_CHAR(ub));
	  DBMS_OUTPUT.PUT_LINE('Alloc Bytes: ' || TO_CHAR(ab));
	END;
	/
41-14:
	variable unf number
	variable unfb number
	variable fs1 number
	variable fs1b number
	variable fs2 number
	variable fs2b number
	variable fs3 number
	variable fs3b number
	variable fs4 number
	variable fs4b number
	variable full number
	variable fullb number
	begin
	  dbms_space.space_usage('SCOTT','EMP','TABLE',
	    :unf, :unfb,:fs1, :fs1b,:fs2, :fs2b,
	    :fs3, :fs3b,:fs4, :fs4b,:full, :fullb);
	end;
	/
	print unf 
	print unfb
	print fs4 
	print fs4b
	print fs3 
	print fs3b
	print fs2 
	print fs2b
	print fs1 
	print fs1b
	print full
	print fullb
41-15:
	DECLARE
	  total_blocks NUMBER;
	  total_bytes NUMBER;
	  unused_blocks NUMBER;
	  unused_bytes NUMBER;
	  last_used_extent_file_id NUMBER;
	  last_used_extent_block_id NUMBER;
	  last_used_block NUMBER;
	BEGIN
	  dbms_space.unused_space('SCOTT','EMP','TABLE',
	    total_blocks,total_bytes,unused_blocks,
	    unused_bytes,last_used_extent_file_id,
	    last_used_extent_block_id,last_used_block);
	  dbms_output.put_line('HWM='||
	    TO_CHAR(total_blocks-unused_blocks-1));
	END;
	/
41-16:
	exec sys.dbms_tts.transport_set_check('users1,users2')
	SELECT * FROM sys.transport_set_violations;
41-17:
	exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','COMPUTE')
41-18:
	DECLARE
	  name VARCHAR2(20);
	BEGIN
	  dbms_utility.canonicalize('ab',name,10);
	  dbms_output.put_line(name);
	END;
	/
41-19:
	DECLARE
	  name VARCHAR2(100):='scott,smith,clark,blake';
	  name_list dbms_utility.lname_array;
	  name_count INT;
	BEGIN
	  dbms_utility.comma_to_table(name,name_count,name_list);
	  FOR i IN 1..name_count LOOP
	    dbms_output.put_line(name_list(i));
	  END LOOP;
	END;
	/	
41-20:
	exec DBMS_UTILITY.EXEC_DDL_STATEMENT('CREATE TABLE abc(cola int)')
41-21:
	