APex 4.1 error ORA-01461: can bind to a value of type LONG only to insert them into a LONG
HelloFaced with a strange question.
I have a regular cursor, and in this loop of cursor, I have a select statement in some variables based on cursor settings.
I was getting the "ORA-01461: can bind to a LONG value only for insert into a LONG column" error so I started the individual verification of each of the columns. Now, it works fine for some columns, but the moment I add this numeric field. He began to throw this error. Now, the source of the database where the selection is triggered is of type number, the variable in which I select is number.
Infact, I have not any column defined anywhere.
The strange thing is that the block is running perfectly fine in SQl developer. So, looks like a specific problem of the Apex.
I'm in 4.1 / 11g
Any ideas?
Thank you
Sun
I'm NOT aware of documentation showing HOW the APEX team have built APEX (database design wise), but this met enough to collect that they use with a near limit of the VARCHAR2 VARCHAR2 columns size limit...
I'm NOT aware of a limit on the size of the service procedure in the database.
The code that you add to a form or report is stored in tables oracle APEX uses its called metadata (data about data)... So it would make sense that there are limits to how much can be stored in the form elements when developing... Try this, on a form region, go to the comment section and try to add a ton of comments or lines of text and save... You will hit a point where long error will happen (I'm now hitting, trying to replace sql selects for reports in an application, old registration code in case of questions, can not post in the comments field..)
I believe in a dynamic action, you can have the run of the pl/sql code, so if you have a procedure called RunMyCode you could do that
begin
RunMyCode(:P1_AL,:P1_B);
end;
Where you large PL/SQL block could be stored...
Thank you
Tony Miller
Dallas, TX
Tags: Database
Similar Questions
-
ORA-01461: can bind to a value of type LONG only to insert them into a column error
Oracle 11g R1 RHEL 5 64-bit (Apex 3.1)
Hi all
I will have a hard time with this error:
ORA-01461: can bind to a LONG value only for insert into a LONG column
ORA-06512: at "FPRCHR. PKG_TRIGGER_EMAIL', line 39
ORA-06512: at "ISWRNEW. PKG_NOTIFICATION', line 310
ORA-06512: at "ISWRNEW. PKG_NOTIFICATION', line 1745
ORA-06512: at line 1
The FPRCHR. PKG_TRIGGER_EMAIL is as follows:
...
INSERT INTO fprchr.trigger_email
(trigger_email_rid,
email_to,
email_from,
email_body,
objet_message_electronique,
email_cc,
email_bcc,
mime_type,
email_priority
)
VALUES (l_job,
p_recipients,
p_sender,
p_message,
p_subject,
p_cc,
p_bcc,
p_mime_type,
p_priority
);
run immediately 'alter session set events 'name context 10046 trace off'. "
Send END;
...
It seems that the characters have exceeded the capable of handling VARCHAR2 limit? What other data type can change the table of fprchr.trigger_email to? Is that all that is needed?
Thank you.It seems that the characters have exceeded the capable of handling VARCHAR2 limit? What other data type can change the table of fprchr.trigger_email to? Is that all that is needed?
Have you tried with the clob data type?
Kind regards.
LOULOU
-
ORA-01461: can bind to a LONG value only for insert into a LONG column of dynamic Action
I try to apply the condition to display items in a table with the following error code.its dynamic action when him save the day.
event: click on
Selection type: button
name of the button: P23_ADD_MORE_ROW
condition: no strings attached
//P23_NAME_BY_CAT,P23_HOW_MANY as LOV in apex form var l_no_rows; l_no_rows = apex.item("P23_HOW_MANY").getValue(); for (var i=0; i<l_no_rows; i++){ apex.widget.tabular.addRow(); if ($v("P23_NAME_BY_CAT")==1) { $("#WORK_QTY").show(); $('td[headers=WORK_QTY]').show(); $("#WORK_LOCTION").hide(); $('td[headers=WORK_LOCTION]').hide(); $("#MY_LOCTION").hide(); $('td[headers=MY_LOCTION]').hide(); //with morethan 25+ entry } else if ($v("P23_NAME_BY_CAT")==2) { $("#WORK_QTY").hide(); $('td[headers=WORK_QTY]').hide(); $("#WORK_LOCTION").show(); $('td[headers=WORK_LOCTION]').show(); $("#MY_LOCTION").hide(); $('td[headers=MY_LOCTION]').hide(); //with morethan 25+ entry } else if ($v("P23_NAME_BY_CAT")==2) { $("#WORK_QTY").hide(); $('td[headers=WORK_QTY]').hide(); $("#WORK_LOCTION").hide(); $('td[headers=WORK_LOCTION]').hide(); $("#MY_LOCTION").show(); $('td[headers=MY_LOCTION]').show(); //with morethan 25+ entry } else { alert("no count"); } };
dynamic action above can ignite if you level column, it means when I choose LOV value so that specified columns will show only rest in a column will be hidden. up to 10 input works fine.
Hi Ramani_apex,
Is the action of javascript executed in the dynamic action of the code you posted above or more code?
You seem to have exceeded a 4000 or 32 K bytes on a column of metadata for dynamic action when you set the dynamic action.
- Rather than write a javascript function in the Page attributes-> Javascript section-> the function and the declaration of the Global Variable:
function f_mybuttonAction () { //P23_NAME_BY_CAT,P23_HOW_MANY as LOV in apex form var l_no_rows; l_no_rows = apex.item("P23_HOW_MANY").getValue(); for (var i=0; i
- Call the action javascript function run the dynamic action javascript code:
//mybutton action f_mybuttonAction();
Reference:
- APex 4.1 error ORA-01461: can bind to a value of type LONG only to insert them into a LONG
- Masking multiple elements with dynamic action me gives error
I hope this helps!
Kind regards
Kiran
-
I have a Windows application that accesses a database of 12 c Oracle via ODBC (driver version is 12.01.00.01).
I have a table with a column of key named REGION_ID (NVARCHAR2 (9)) and a dozen other columns, of which three are named region1 and region.2 elle3, all of type NVARCHAR2 (40).
When I try to insert a string in the scope of the region1 is longer than 9 characters (length of REGION_ID), I get an error ORA-01461 (' can bind to a LONG value only for insert into a LONG column). If I set the length of REGION_ID be NVARCHAR2 (15), so I can add channels to the region1 in length up to 15 field until I get ORA-01461 exception again. Curiously, if I change the name of column region1 to REGIONONE, I don't get any errors, and everything works fine. It's almost as if the column name region1 is being confused with REGION_ID backstage.
Any ideas? I am using SQLBindParameter to bind the columns, and all calls are successful. I get the exception when I run the insert statement. This same code worked for previous versions of Oracle (9i, 10g and 11g). And if I use a driver of client 11g against the 12 c server, I do not receive the exception.
Thank you!
It is a component of ODBC driver bug in 12 c and it is fixed. You can download and install the fix for bug 18232462 or the last window for 12 c patch cumulative/bundle.
Thank you
Spengler
-
After update, oracle 11g, we get the system error when you try to insert the text string in the NCLOB type column.
ORA - 01461:can bind a LONG value only for insert in a LONG column.
This has not happened on an earlier version of Oracle.
I did some testing and found that, if a string more then 2000 we get this error.
How to solve this problem?
Thank you
I found a solution. I had to update ODP.NET to 2.112.1.0 version.
-
ORA-01461: can bind to a LONG value only for insert into a LONG column
Hello
Oracle XE on RHE dedicated server
Why do I get the error of subject?create table cvDetails( cd_id number(14) primary key, cv_id number(14) constraint education_fk references CvProperties(cv_id), nationality varchar2(230), objectives varchar2(3900), name varchar2(230), fatherName varchar2(230), motherName varchar2(230), dob varchar2(230), gender varchar2(230), mStatus varchar2(230), passportNo varchar2(110), email varchar2(230), phone varchar2(45), mobile varchar2(25), address varchar2(2500), state varchar2(230), zipCode varchar2(230), city varchar2(230), education clob, experience clob, skills clob, languages varchar2(1400), hobbies varchar2(3200), achievements varchar2(3900), references varchar2(3900) ); create sequence cvDetails_seq start with 1 increment by 1; create or replace trigger cvDetails_trig before insert on cvDetails referencing new as new for each row begin select cvDetails_seq.nextval into :new.cd_id from dual; end; /
Thank you in anticipation>
in any case, I checked manually according to your instructions and found that this objective column is of character input more than specified.
>
Glad you found the problem, but I hope that you learned a lesson that is time consuming.It must be remembered that we have no access to your environment. If we do not know which servers, clients, tables and users that you use.
It may seem simple to you but doesn't realize that you provide us with two slightly different versions of the cvDetails table.The original post had this
>
objectives varchar2 (3900).
>
But when you have provided your 'cvDetails desc' journal text has
>
OBJECTIVES VARCHAR2 (3950)
>
It is the same table that you started with how the column suddenly grow 50 bytes?
This means that you did from different parts of the present in the two schemas or on two servers or you change the table between the two.You can't address properly when you do this. By chance it is the column that you said is now the problem.
In SQL, the maximum length of a VARCHAR2 is 4000 bytes; no characters but bytes. Nothing more than 4000 bytes would probably be a LONG in the generic sense.If your error
>
Re: ORA-01461: can bind to a LONG value only for insert into a LONG column
>
means that you try to 'bind a LONG value' to a column VARCHAR2 and you can't you can 'bind a LONG value only for insert in a LONG column.In the proper context, the error makes sense.
You probably have a problem with
ps.setString(2, objectives);
because the 'objectives' has a length of more than 4000 bytes.
Remember this answer from you?
>
I have read and found that there may be a problem with the driver JDBC or Characterset. Am I wrong?
>
The 'Hello' ASCII string is five characters and five bytes because the ASCII code is a set of characters in a single byte. The same string internally in Java is five characters but ten bytes because Java uses UTF16.So, if the character set of the data itself is double-byte character set then anything more than 2000 characters (4000 bytes) is a "LONG". And if your column is defined as VARCHAR2 (3950), which means bytes a doublel-byte character set which are characters of 1975.
Then you said in a response later
>
I checked by the SNA Server and oracle that are both of the same but new thing I found is that oracle does not allow more than one clob column in a table. Is this true?
>
Somehow a hypothesis has crept it that the problem was not a driver JDBC or Charaterset, but because you can not have more than one clob column in a table.You could have easily tested for yourself by doing what P. Forstmann - tried to create a table and see.
Then you completely ignored my advice
>
I suggest to you isolate the columns actually causing the problem.
Change your code to insert only a few columns. When it works, add more than a few columns.
This will then tell you which column or the columns are at the origin of the problem.
Display the results once you determine a column that causes the error.
>
When you have finally made the simplest things, you have found what was causing the problem almost immediately.Many times you don't need 'experts' - you must use a rigorous, methodical, process step by step.
ALWAYS, ALWAYS, ALWAYS reduce the simplest possible code example that illustrates the problem.
If you had followed this a rule would have probably found you the problem and makes you look like the 'expert '.There are no shortcuts.
-
I get the following error when the runing an interface.
ORA-01461: can bind to a LONG value only for insert into a LONG column
But there is no column with the data type long.
What could be the error?Do you know what area or that is causing the problem? If this isn't the case, that is where I would start in this debugging. ODI attempts to insert a value of Oracle DB believes is a data type long - you'll need to understand what is the cause in order to repair.
-
Error: ORA-16757: failed to get the value of this property
Hi all
I have an error:
DGMGRL > see the database dbname_stb LogXptStatus;
Error: ORA-16757: failed to get the value of this property
I check:
DGMGRL > see the configuration;
Configuration - dbname_dg
Protection mode: MaxPerformance
Databases:
dbname_pr - primary database
dbname_stb - physical of the standby database
Fast-Start Failover: DISABLED
The configuration status:
SUCCESS
drcdbname_stb.log:
RSM0: Received the request the property Get: rid = 0 x 01010000, pid = 54
2012-10-17 15:21:14.702 of database Resource: get the LogXptStatus property
RSM 15:21:14.702 2012-10-17 error: trying to interview a 'LogXptStatus' primary type property on a standby database resource.
2012 10-17 error 15:21:14.702 database resource GetProperty (16501,16757)
I don't understand this error?
Thank you all.Take a look on this
-
Remove all lines and insert them into Oracle can make performance worse?
I m working in a project that I need to make a batch update regularly (every 4 months) of excel files. These files have doesn´t excellent key in their ranks.
The development of a code that deletes all lines and inserts the entire base again is easier than one who checks in all the ranks of its primary key and if necessary update. (sometimes may be a key to 5 columns).
My question is: if I delete all the rows in the tables of the insert it again, it will cause tablespace fragmentation and in a future loss of performance?
Is there a way to avoid this?
Thanks in advance
Alexander
This response helped me a lot.
Thank you all
Remove all lines and insert them into Oracle can make performance worse? -Stack overflow
-
Dear all.
I have this error in the Management Module of cash on the bank statement charging process
Error ORA-20003: cannot read file/software/d01/oracle / interface/finance/entrants / email.9Nemail.13111507. 3445704.cnv.
How to solve this error.
Thank you.
Hi Lucie,.
The error is probably due to one of the reasons why:
1. There is no file to the location: software/d01/oracle/interface/finance/inbound/email.9Nemail.13111507.3445704.cnv.
2. no authorization on the respective file.
Request assistance from the ADMINISTRATOR to check on this.
Thank you &
Best regards
-
How can I take short videos of my digital camera and combine them into one video.
I went to a class reunion and took several short videos and want to combine them into one so that I can make a DVD with photos and videos.
What is the format of the video clips? Are they compatible
with Windows Live Movie Maker and Windows DVD Maker?First... If you import video clips in Windows group
Creating DVD... Each clip becomes a scene (chapter).Or... you can import the group into Movie Maker add them
for a project and save it as a. WMV video file... cela will combine
in a single file.Also... Format Factory free software has a Video Joiner
option that will join files very quickly and can be
worth a try.(FWIW... it's always a good idea to create a system)
Restore point before installing software or updates)Format Factory
http://www.videohelp.com/tools/Format_Factory
(the 'direct link' is faster)
(the file you want to download is: > FFSetup270.zip<>
(FWIW... installation..., you can uncheck
('all' boxes on the last screen)First, you will need to decompress the file or just open the
Drag FFSetup270.exe out of the folder
and drop it on your desktop. To install left click.Next, after the download and installation of Format
Factory... you can open the program and
left click on the toolbar, the "Option" button and
"Select an output folder to" / apply / OK.
(this is where you find your files after they)
are converted)Once installed, open Format Factory... to the left
pane... Choose... Advanced / Video Joiner...
On the left, click on the button Add file and import your video
clips. Choose an output format and on the left, click OK.On the left, click on the Start button in the toolbar and your
video files will be combined.Good luck...
-
How can I take 2 files saved on Word 3 and combine them into a single file?
How can I take 2 or 3 files saved on Word 3 and combine them into a single file?
How can I take 2 or 3 files saved on Word 3 and combine them into a single file?
Hello
The easiest way would be to simply copy all the content files and paste them into one of the other files.
Concerning
-
Apex 4.2
I searched through the forums of the research about this error, but I do not understand what to do from here. I am writing a process that sends an e-mail when a value of the claim is made (or on a button click). Procedure is as follows:
DECLARE l_body clob; l_body_html clob; l_subject varchar2(100); BEGIN l_body := empty_clob(); l_body_html := empty_clob(); IF V('REQUEST') in ('SAVE_ME') AND :P32_PARENT_UPDATED_FL IS NOT NULL THEN l_subject := 'Survey Job Request Updated'||utl_tcp.crlf||utl_tcp.crlf; l_body := 'Update'||utl_tcp.crlf; l_body_html := '<html> <head> <style type = "text/css"> /* Can add style attributes later */ </style> </head> <body>'||utl_tcp.crlf; l_body_html := l_body_html ||'Survey Job Request has been updated.<br /><br />'||utl_tcp.crlf; l_body_html := l_body_html ||'Title: '||utl_tcp.crlf; l_body_html := l_body_html ||:P32_TITLE||utl_tcp.crlf; l_body_html := l_body_html ||'<br />Request Category : '||utl_tcp.crlf; l_body_html := l_body_html ||:P32_REQUEST_CATEGORY||utl_tcp.crlf; l_body_html := l_body_html ||'<br />Update Date: '||utl_tcp.crlf; l_body_html := l_body_html ||:P32_UPDATE_DATE||utl_tcp.crlf; l_body_html := l_body_html ||'<br />Updated By: '||utl_tcp.crlf; l_body_html := l_body_html ||:P32_LAST_EDITED_BY_USERID||utl_tcp.crlf; l_body_html := l_body_html ||'</body></html>'; END IF; :P32_CANCELLATION_REASON := l_body_html; apex_mail.send( p_to => '[email protected]', p_from => '[email protected]', p_body => l_body_html, p_body_html => l_body_html, p_subj => l_subject); END;
I added two lines to the code (lines 08 and 09) and when I run my program, I now get the error:
- ORA-21560: 3 argument is null, invalid or out of range
Without these two lines, I received the error:
ORA-06502: PL/SQL: digital error or value: specified incorrect LOB Locator
I'm not quite sure what is wrong or what I can change. There seems to be right, and in fact, it worked before. I have no idea why this error keeps popping up. Any help on that would be great. Thanks in advance.
Hello
NewApexCoder wrote:
Hmmm... good point. I think that apex_mail.send must be called inside the IF block. But in the future, I added several conditional statements, won't I need to include the apex_mail.send function in each IF block? But at the same time, there is the case that if no conditional instructions are met? Tests, when none of the conditions are true (when I had a second IF block in the code), an email would not be defined, which is correct. Could that be causing a problem however. If the IF block is not filled could he always try to send an email about anything or the l_body_html and l_subject fields have in them the garbage that causing ORA error?
If the call to the procedure of sending (it is a procedure, and not a function) many times is necessary or useful depends on exactly what you're trying to do.
For example, you can write to Santa for
- Submit a wish list
- Change of address
- Contradiction with your boss, who can you tell Santa you were mean
or any combination of these grounds. If you want to send a simple email whenever any of the conditions are met (and not send a when none are met), then you could do something like this:
DECLARE
need_to_send BOOLEAN: = FALSE;
...
BEGIN
...
IF wish_list IS NOT NULL
THEN
l_body: = l_body | ...
need_to_send: = TRUE;
END IF;
IF old_addresss <> new_address
THEN
l_body: = l_body | ...
need_to_send: = TRUE;
END IF;
IF boss_is_a_big_fat_liar
THEN
l_body: = l_body | ...
need_to_send: = TRUE;
END IF;
IF need_to_send
SO - It's the only call to send
apex_mail. Send...
In any case, the error message ' ORA-21560: argument 3 sucks...» "is pretty clear: If you have not given a value to everything you're passing as p_body, then you'd better call the procedure.
-
Link table error: ORA-01485: compile bind different length to execute
Hi all -
I'm running on a question where I receive the following error message when you try to use the binding table. I'm dynamically enumeration of a set of data and fill tables Oracle of the same name with all the data from the DataTable. I tried debugging with just a single datatable of 10 records with the double data type, however still receive the exception. For reference, the connection is already open before calling this method.
public void BulkLoadWithArrayBinding (System.Data.DataTable dt)
{
StringBuilder sb = new StringBuilder();
The list settings < OracleParameter > As new List < OracleParameter >(dt.) Columns.Count);
OracleCommand cmd = new OracleCommand();
cmd connection group conn.;
SB. Append ("INSERT INTO" + dt. TableName + "(' ');
foreach (DataColumn DC in dt. Columns)
{
SB. Append (dc. ColumnName.ToUpper ());
If (dc. Ordinal < dt. Columns.Count - 1).
SB. AppendLine(",");
}
SB. Append(") VALUES(");
foreach (DataColumn DC in dt. Columns)
{
string parameterName = dc. ColumnName.ToUpper ();
SB. Append (":" + parameterName);
If (DC. Ordinal < dt. Columns.Count - 1).
SB. AppendLine(",");
String [] sArray = new String [dt. Rows.Count];
Xavier of DateTime [] = new DateTime [dt. Rows.Count];
Decimal [] dbArray = new Decimal [dt. Rows.Count];
OracleParameter p = null;
If (dc. DataType.Name is "String")
{
for (int i = 0; i < dt.) Rows.Count; i ++)
{
[i] sArray is dt. Lines [i] [dc. Ordinal]. ToString();
}
p = new OracleParameter (parameterName,
OracleDbType.Varchar2, dt. Rows.Count, ParameterDirection.Input);
p.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
p.Size = sArray.Length;
p.Value = sArray;
}
ElseIf (dc. DataType.Name is "DateTime")
{
for (int i = 0; i < dt.) Rows.Count; i ++)
{
Xavier [i] = Convert.ToDateTime (dt. Lines [i] [dc. Ordinal]);
}
p = new OracleParameter (parameterName,
OracleDbType.Date, dt. Rows.Count, ParameterDirection.Input);
p.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
p.Size = dArray.Length;
p.Value = ASA;
}
on the other
If (dc. DataType.Name is 'Double')
{
for (int i = 0; i < dt.) Rows.Count; i ++)
{
dbArray [i] = Convert.ToDecimal (dt. Lines [i] [dc. Ordinal]);
}
/ * p = new OracleParameter (parameterName, OracleDbType.Decimal, dbArray.Length, ParameterDirection.Input); * /.
p = new OracleParameter();
p.ParameterName = parameterName;
p.OracleDbType = OracleDbType.Decimal;
p.Direction = ParameterDirection.Input;
p.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
p.Size = dbArray.Length;
p.Value = dbArray;
}
cmd. Parameters.Add (p);
parameters. Add (p);
}
SB. AppendLine ("") ");"
cmd.CommandText = sb. ToString();
cmd.CommandType = CommandType.Text;
cmd ArrayBindCount group dt. Rows.Count;
BindByName. cmd = true;
cmd ExecuteNonQuery());
}Hello
I don't actually run your code, but you should not be put in p.CollectionType = OracleCollectionType.PLSQLAssociativeArray; Associative arrays are differnet liaison of the table.
An associative array is the equivalent of a scalar array type that you would spend in a stored procedure to a single run.
Binding of the table is used to 'run this statement X times, here is the data for all X executions above all. "
Here is a small example, I hope this can help,
Greg//create table onedouble(col1 number); using System; using System.Data; using Oracle.DataAccess.Client; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { double[] doubs = new double[10]; for (int i=0;i<10;i++) doubs[i] = Double.Parse(i.ToString()+"."+i.ToString()); using (OracleConnection con = new OracleConnection("data source=orcl;user id=scott;password=tiger")) { con.Open(); using (OracleCommand cmd = new OracleCommand("", con)) { cmd.CommandText = "insert into onedouble values(:1)"; cmd.ArrayBindCount = 10; cmd.Parameters.Add(new OracleParameter("",OracleDbType.Double)); cmd.Parameters[0].Value = doubs; // this causes ora-1485 //cmd.Parameters[0].CollectionType = OracleCollectionType.PLSQLAssociativeArray; cmd.ExecuteNonQuery(); } } } } }
results
=======SQL > select * from onedouble;
COL1
----------
0
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9 -
9 IOS iPhone App Maps: Can not erase ALL of my search history, only some of them.
I was able to remove most of my search history in maps by typing on the field of RESEARCH, tapping FAVORITES, then RECENT tapping on the bottom, then tapping CLEAR on top.
However, there are 5 left entrances where there is the word before them. 3 are contacts, I know 1 is a text of a contact I have more in my phone, and the last is an application. How can I get rid of all?
Thank you.
I have this issue too, impossible to delete the history of research since 9.3. There are always 3 entrances and they change automatically if I read an email or if I get a text message...
Help please.
Maybe you are looking for
-
Hello guys I am desperate I have a toshiba that I bought in the United Kingdom but I'm in Italy and the toshiba doesn't work at all, I tried every thing without success, how can I open a repair process while I am here because of Italy I have no chanc
-
Impossible to scan OCR on a model of all-in-One Photosmart B109n-z
My solution center software downloaded from the HP site does not features to find in searchable PDF documents, .txt or .rtf as it and as stated in the manual online. This has changed and why the non-existent OCR feature. The solution downloaded sof
-
--------------------------- Virtual Disk Manager --------------------------- The format failed. --------------------------- Ok ---------------------------
-
long integer value - setting the date of entry
Hello I'll send a calendar event while recording up to a database on my server. When I retrieve this entry and try to rebuild the entrance on the device, I have problems with starttime and endtime. I use Long.parseLong (myStartTime) (in order to defi
-
TextFiled defined area AutoFill
I created textareas in Illustrator with fill colors.I want to do this automatically 5px 2px padding up and down and left and right padding.I know that this is possible in Indesign, but I need the same function in Illustrator to be used as a Smartobje